Skip to content

Commit 02bad6f

Browse files
committed
Add gdb wrapper for easier core dumps analysis
Closes #25
1 parent ddd1fc7 commit 02bad6f

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

jobs/rabbitmq-server/spec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ templates:
286286
bin/stop: bin/stop
287287

288288
bin/rabbitmq_management_http_ok: bin/rabbitmq_management_http_ok
289+
bin/analyse_core_dump: bin/analyse_core_dump
289290

290291
bin/_add_user: bin/_add_user
291292
bin/_add_external_plugins: bin/_add_external_plugins
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
# shellcheck source=/dev/null
6+
. /var/vcap/jobs/rabbitmq-server/env
7+
8+
ERLANG_CORE_DUMP="${1:?first argument must be a valid Erlang Core Dump}"
9+
10+
ERTS_EMULATOR="$ERLANG_HOME"/src/erts/emulator
11+
GDB_MACROS="$ERLANG_HOME"/src/erts/etc/unix/etp-commands.in
12+
13+
shell_expanded_beam_path() {
14+
echo "${ERLANG_HOME:?must be set}"/lib/erlang/erts-*/bin/beam.smp
15+
}
16+
17+
gdb "$(shell_expanded_beam_path)" \
18+
-directory="$ERTS_EMULATOR" -command="$GDB_MACROS" -core="$ERLANG_CORE_DUMP"

jobs/rabbitmq-server/templates/env.erb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,10 @@ export LC_ALL=en_US.UTF-8
7272

7373
export ERL_INETRC=/var/vcap/jobs/rabbitmq-server/erl_inetrc
7474
export ERLANG_COOKIE="<%= p("erlang.cookie") %>"
75+
export ERLANG_HOME=/var/vcap/jobs/rabbitmq-server/packages/erlang-<%= p("erlang.version") %>
7576

7677
# erl(1) / erlc(1) require $HOME to be set
7778
# Default to the system user that runs rabbitmq-server
7879
[ -n "$HOME" ] || export HOME=/home/"$RABBITMQ_SERVICE_USER"
7980

80-
export PATH="$RABBITMQ_SERVER_PACKAGE/sbin:/var/vcap/jobs/rabbitmq-server/packages/erlang-<%= p("erlang.version") %>/bin:/var/vcap/jobs/rabbitmq-server/bin:/var/vcap/jobs/rabbitmq-server/packages/rabbitmq-support-tools/scripts:$PATH"
81+
export PATH="$RABBITMQ_SERVER_PACKAGE/sbin:$ERLANG_HOME/bin:/var/vcap/jobs/rabbitmq-server/bin:/var/vcap/jobs/rabbitmq-server/packages/rabbitmq-support-tools/scripts:$PATH"

0 commit comments

Comments
 (0)