diff options
author | Joshua Colp <jcolp@digium.com> | 2017-10-30 10:38:25 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2017-10-30 10:38:25 -0500 |
commit | 6e7b2bbf68aab08aed1df76297bfa86d838d51f3 (patch) | |
tree | 8a50d622b172fb3319169e9d615f43f9ba03537a | |
parent | 4b7a565dc563879d070bf9c64fbbc60b77f3e799 (diff) | |
parent | c552e94d7c935768a219874e568aa56a71b0a6c0 (diff) |
Merge "ast_coredumper: Add gzipping of binaries and display of signal info" into 15
-rwxr-xr-x | contrib/scripts/ast_coredumper | 41 |
1 files changed, 34 insertions, 7 deletions
diff --git a/contrib/scripts/ast_coredumper b/contrib/scripts/ast_coredumper index 81e94e945..e5fc44eb3 100755 --- a/contrib/scripts/ast_coredumper +++ b/contrib/scripts/ast_coredumper @@ -63,9 +63,15 @@ DESCRIPTION from the existing coredumps. --tarball-coredumps - Creates a gzipped tarball of all coredumps processed. - The tarball name will be: - /tmp/asterisk.<timestamp>.coredumps.tar.gz + Creates a gzipped tarball of coredumps processed, their + results txt files and copies of /etc/os-release, + /usr/sbin/asterisk, /usr/lib(64)/libasterisk* and + /usr/lib(64)/asterisk as those files are needed to properly + examine the coredump. The file will be named + /tmp/asterisk.<timestamp>.coredumps.tar.gz or + /tmp/asterisk-<uniqueid>.coredumps.tar.gz if + --tarball-uniqueid was specified. + WARNING: This file could 1gb in size! --delete-coredumps-after Deletes all processed coredumps regardless of whether @@ -377,12 +383,25 @@ for i in ${!COREDUMPS[@]} ; do done if $tarball_coredumps ; then - tf=/tmp/asterisk-$df.coredumps.tar - echo "Creating $tf.gz" + tf=/tmp/asterisk-$df.coredumps.tar.gz + echo "Creating $tf" + dest=/tmp/asterisk-$df + rm -rf $dest 2>/dev/null || : + libdir=usr/lib + [ -d /usr/lib64 ] && libdir+=64 + mkdir -p $dest/tmp $dest/$libdir/asterisk $dest/etc $dest/usr/sbin for i in ${!COREDUMPS[@]} ; do - tar -uvf $tf "${COREDUMPS[@]}" 2>/dev/null + ln -s "${COREDUMPS[@]}" $dest/"${COREDUMPS[@]}" + cp "${COREDUMPS[@]}"*.txt $dest/tmp/ done - gzip $tf + cp /etc/os-release $dest/etc/ + cp -a /$libdir/libasterisk* $dest/$libdir/ + cp -a /$libdir/asterisk/* $dest/$libdir/asterisk/ + cp -a /usr/sbin/asterisk $dest/usr/sbin + rm -rf $tf + tar -chzf $tf --transform="s/^[.]/$df/" -C $dest . + rm -rf $dest + echo "Created $tf" fi if $delete_coredumps_after ; then @@ -431,21 +450,29 @@ class DumpAsteriskCommand(gdb.Command): pass print("!@!@!@! thread1.txt !@!@!@!\n") try: + gdb.execute("p $_siginfo", from_tty) + gdb.execute("info signal $_siginfo.si_signo") gdb.execute("thread apply 1 bt full", from_tty) except: pass print("!@!@!@! brief.txt !@!@!@!\n") try: + gdb.execute("p $_siginfo", from_tty) + gdb.execute("info signal $_siginfo.si_signo") gdb.execute("thread apply all bt", from_tty) except: pass print("!@!@!@! full.txt !@!@!@!\n") try: + gdb.execute("p $_siginfo", from_tty) + gdb.execute("info signal $_siginfo.si_signo") gdb.execute("thread apply all bt full", from_tty) except: pass print("!@!@!@! locks.txt !@!@!@!\n") try: + gdb.execute("p $_siginfo", from_tty) + gdb.execute("info signal $_siginfo.si_signo") gdb.execute("show_locks", from_tty) except: pass |