aboutsummaryrefslogtreecommitdiffstats
path: root/erts
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2013-06-03 18:15:44 +0200
committerLukas Larsson <[email protected]>2013-06-03 18:15:44 +0200
commit1b7d29ce5d0f6ed4e087d9a5936834b442fd769d (patch)
tree1ca569ecbc130d3106e63b5961ae66367f60d452 /erts
parent6906875260e2b70d3fd405f3eb6eab625814d105 (diff)
parent5a6aa8d4f9f07f78547af97c130651aefca5944a (diff)
downloadotp-1b7d29ce5d0f6ed4e087d9a5936834b442fd769d.tar.gz
otp-1b7d29ce5d0f6ed4e087d9a5936834b442fd769d.tar.bz2
otp-1b7d29ce5d0f6ed4e087d9a5936834b442fd769d.zip
Merge branch 'lukas/erts/cerl_gdb_extension/OTP-11130' into maint
* lukas/erts/cerl_gdb_extension/OTP-11130: Add rcore and rgdb to cerl
Diffstat (limited to 'erts')
-rw-r--r--erts/etc/unix/cerl.src33
1 files changed, 33 insertions, 0 deletions
diff --git a/erts/etc/unix/cerl.src b/erts/etc/unix/cerl.src
index f99059cb72..691b32e143 100644
--- a/erts/etc/unix/cerl.src
+++ b/erts/etc/unix/cerl.src
@@ -31,6 +31,8 @@
# -debug Run debug compiled emulator
# -gdb Run the debug compiled emulator in emacs and gdb.
# You have to start beam in gdb using "run".
+# -rgdb Run the debug compiled emulator in gdb.
+# You have to start beam in gdb using "run".
# -break F Run the debug compiled emulator in emacs and gdb and set break.
# The session is started, i.e. "run" is already don for you.
# -xxgdb FIXME currently disabled
@@ -178,6 +180,10 @@ while [ $# -gt 0 ]; do
;;
"-gdb")
shift
+ GDB=egdb
+ ;;
+ "-rgdb")
+ shift
GDB=gdb
;;
"-break")
@@ -188,6 +194,12 @@ while [ $# -gt 0 ]; do
;;
"-core")
shift
+ GDB=egdb
+ core="$1"
+ shift
+ ;;
+ "-rcore")
+ shift
GDB=gdb
core="$1"
shift
@@ -285,6 +297,27 @@ if [ "x$GDB" = "x" ]; then
else
exec $EXEC $eeargs $xargs ${1+"$@"}
fi
+elif [ "x$GDB" = "xgdb" ]; then
+ case "x$core" in
+ x)
+ # Get emu args to use from erlexec...
+ beam_args=`$EXEC -emu_args_exit ${1+"$@"}`
+ gdbcmd="--args $EMU_NAME $beam_args"
+ ;;
+ x/*)
+ gdbcmd="$EMU_NAME ${core}"
+ GDBBP=
+ ;;
+ *)
+ dir=`pwd`
+ gdbcmd="$EMU_NAME ${dir}/${core}"
+ GDBBP=
+ ;;
+ esac
+ cmdfile="/tmp/.cerlgdb.$$"
+ echo "source $ROOTDIR/erts/etc/unix/etp-commands" > $cmdfile
+ # Fire up gdb in emacs...
+ exec gdb $GDBBP -x $cmdfile $gdbcmd
else
if [ "x$EMACS" = "x" ]; then
EMACS=emacs