aboutsummaryrefslogtreecommitdiff
path: root/scripts/analyze_dump.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/analyze_dump.sh')
-rwxr-xr-xscripts/analyze_dump.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/scripts/analyze_dump.sh b/scripts/analyze_dump.sh
new file mode 100755
index 0000000..1ccb800
--- /dev/null
+++ b/scripts/analyze_dump.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+binimg=build/dnsd
+
+# Today and yesterdays cores
+cores=$(find ./dumps/ -name '*.core' -mtime -1)
+
+for core in $cores
+do
+ gdblogfile="$core-gdb.log"
+ rm -f "$gdblogfile"
+
+ bininfo=$(ls -l $binimg)
+ coreinfo=$(ls -l "$core")
+
+ gdb -batch \
+ -ex "set logging file $gdblogfile" \
+ -ex "set logging on" \
+ -ex "set pagination off" \
+ -ex "printf \"**\n** Process info for $binimg - $core \n** Generated $(date)\n\"" \
+ -ex "printf \"**\n** $bininfo \n** $coreinfo\n**\n\"" \
+ -ex "file $binimg" \
+ -ex "core-file $core" \
+ -ex "bt" \
+ -ex "info proc" \
+ -ex "printf \"*\n* Libraries \n*\n\"" \
+ -ex "info sharedlib" \
+ -ex "printf \"*\n* Memory map \n*\n\"" \
+ -ex "info target" \
+ -ex "printf \"*\n* Registers \n*\n\"" \
+ -ex "info registers" \
+ -ex "printf \"*\n* Current instructions \n*\n\"" -ex "x/16i \$pc" \
+ -ex "printf \"*\n* Threads (full) \n*\n\"" \
+ -ex "info threads" \
+ -ex "bt" \
+ -ex "thread apply all bt full" \
+ -ex "printf \"*\n* Threads (basic) \n*\n\"" \
+ -ex "info threads" \
+ -ex "thread apply all bt" \
+ -ex "printf \"*\n* Done \n*\n\"" \
+ -ex "quit"
+done