summaryrefslogtreecommitdiff
path: root/erts/etc
diff options
context:
space:
mode:
authorSverker Eriksson <sverker@erlang.org>2023-01-27 14:01:51 +0100
committerSverker Eriksson <sverker@erlang.org>2023-01-27 14:01:51 +0100
commita6d103cdaa7dff63e2af058b717d51bb599793e3 (patch)
tree769e28ff6a3e60cbeb880c40ce3a05349364e20a /erts/etc
parentb6bb1c9ae9467117cc40d0dc91cdb9b3ec9e96ca (diff)
parentf06b88878f027b34b944be626678d58625ac5517 (diff)
downloaderlang-a6d103cdaa7dff63e2af058b717d51bb599793e3.tar.gz
Merge branch 'sverker/25/fix-cerl-core' into maint
Diffstat (limited to 'erts/etc')
-rw-r--r--erts/etc/unix/cerl.src21
1 files changed, 10 insertions, 11 deletions
diff --git a/erts/etc/unix/cerl.src b/erts/etc/unix/cerl.src
index 10edb3debc..12b742883f 100644
--- a/erts/etc/unix/cerl.src
+++ b/erts/etc/unix/cerl.src
@@ -472,18 +472,15 @@ elif [ "x$GDB" = "xegdb" ]; then
case "x$core" in
x)
# Get emu args to use from erlexec...
- beam_args=`$EXEC -emu_args_exit $xargs ${1+"$@"} | tr '\n' ' '`
- gdbcmd="(insert-string \"set args $beam_args\") \
- (comint-send-input)"
+ beam_args=`$EXEC -emu_args_exit $xargs ${1+"$@"} | sed 's/"/\\\\"/g' | tr '\n' ' '`
+ gdbcmd="set args $beam_args"
;;
x/*)
- gdbcmd="(insert-string \"core ${core}\") (comint-send-input)"
+ gdbcmd="core $core"
GDBBP=
;;
*)
- dir=`pwd`
- gdbcmd="(insert-string \"core ${dir}/${core}\") \
- (comint-send-input)"
+ gdbcmd="core `pwd`/$core"
GDBBP=
;;
esac
@@ -502,11 +499,13 @@ elif [ "x$GDB" = "xegdb" ]; then
GDBARGS="--annotate=1 "
fi
fi
- gdbcmd="$gdbcmd $GDBBP \
- (insert-string \"source $ROOTDIR/erts/etc/unix/etp-commands\") \
- (comint-send-input)"
# Fire up gdb in emacs...
- exec $EMACS --eval "(progn (gdb \"gdb $GDBARGS$EMU_NAME\") $gdbcmd)"
+ cmdfile="/tmp/.cerlgdb.$$"
+ echo "file $BINDIR/$EMU_NAME" > $cmdfile
+ echo "$gdbcmd" >> $cmdfile
+ echo "source $ROOTDIR/erts/etc/unix/etp-commands" >> $cmdfile
+ EVAL="(progn (gdb \"gdb $GDBARGS -x $cmdfile\"))"
+ exec $EMACS --eval "$EVAL"
elif [ "x$GDB" = "xdump" ]; then
cmdfile="/tmp/.cerlgdb.$$"
## Examine the result of "file $core" in case it is not the emulator