summaryrefslogtreecommitdiff
path: root/bin/extra/gdbcore
diff options
context:
space:
mode:
Diffstat (limited to 'bin/extra/gdbcore')
-rwxr-xr-xbin/extra/gdbcore15
1 files changed, 10 insertions, 5 deletions
diff --git a/bin/extra/gdbcore b/bin/extra/gdbcore
index 69b1a64..667db3e 100755
--- a/bin/extra/gdbcore
+++ b/bin/extra/gdbcore
@@ -9,7 +9,12 @@
# 4 - wrong usage
if [ "$#" -lt 1 ]; then
- >&2 printf 'usage: gdbcore <program>\n'
+ >&2 printf 'usage: gdbcore [-r] <program>\n'
+fi
+
+if [ "$1" = "-r" ]; then
+ recent=1
+ shift
fi
prog="$1"
@@ -24,11 +29,11 @@ coredir=/var/lib/systemd/coredump
tmp="$(mktemp)"
-if [ "$2" = "-r" ]; then
- recent="$(find "$coredir" -name "core.${prog##*/}*" -printf '%Ts %f\n' |
+if [ "$recent" ]; then
+ file="$(find "$coredir" -name "core.${prog##*/}*" -printf '%Ts %f\n' |
sort -n -r | head -n 1 |
cut -f 2- -d' ')"
- corefile="$coredir"/"$recent"
+ corefile="$coredir"/"$file"
else
find "$coredir" -name "core.${prog##*/}*" -printf '%f %TF %TT\n' > "$tmp"
@@ -61,6 +66,6 @@ if ! zstd -d "$corefile" -f -o "$tmp" 2>/dev/null; then
exit 3
fi
-gdb "$prog" "$tmp"
+gdb -q "$prog" "$tmp"
rm -f "$tmp"