summaryrefslogtreecommitdiff
path: root/bin/extra/gdbcore
diff options
context:
space:
mode:
Diffstat (limited to 'bin/extra/gdbcore')
-rwxr-xr-xbin/extra/gdbcore13
1 files changed, 11 insertions, 2 deletions
diff --git a/bin/extra/gdbcore b/bin/extra/gdbcore
index 667db3e..6daafa8 100755
--- a/bin/extra/gdbcore
+++ b/bin/extra/gdbcore
@@ -1,6 +1,7 @@
#!/bin/sh
-# Open the latest core file for program with gdb
+# Open the latest core file for program $1 with gdb
+# If no program supplied then use the most recent one
# RETURN VALUES
# 0 - success
# 1 - if the program was not found or not executable
@@ -8,6 +9,8 @@
# 3 - zstd failed
# 4 - wrong usage
+cache="$HOME/.cache/gdbcore_prog"
+
if [ "$#" -lt 1 ]; then
>&2 printf 'usage: gdbcore [-r] <program>\n'
fi
@@ -17,7 +20,13 @@ if [ "$1" = "-r" ]; then
shift
fi
-prog="$1"
+if [ "$1" ]; then
+ prog="$1"
+ printf '%s\n' "$prog" > "$cache"
+else
+ prog="$(cat "$cache")"
+fi
+
if [ ! -x "$prog" ]; then
prog="$(which "$prog" 2>/dev/null)"
[ -x "$prog" ] || exit 1