diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /solenv/bin/gdb-core-bt.sh | |
parent | Initial commit. (diff) | |
download | libreoffice-upstream.tar.xz libreoffice-upstream.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rwxr-xr-x | solenv/bin/gdb-core-bt.sh | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/solenv/bin/gdb-core-bt.sh b/solenv/bin/gdb-core-bt.sh new file mode 100755 index 000000000..855782580 --- /dev/null +++ b/solenv/bin/gdb-core-bt.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# + +EXECUTABLE=${1} +COREDIR=${2} +EXITCODE=${3} + +if test -n "$(which gdb)" +then + found= + for COREFILE in "$COREDIR"/core* + do + if [ -f "$COREFILE" ] + then + guess=$(file "$COREFILE") + guess=${guess#* execfn: \'} + guess=${guess%%\'*} + if [ ! -x "$guess" ]; then guess=$EXECUTABLE; fi + printf '\nIt looks like %s generated %s\nBacktraces:\n' \ + "$guess" "$COREFILE" + GDBCOMMANDFILE=$(mktemp) + printf "info registers\nthread apply all backtrace full\n" \ + >"$GDBCOMMANDFILE" + PYTHONWARNINGS=default gdb -iex "add-auto-load-safe-path ${INSTDIR?}" \ + -x "$GDBCOMMANDFILE" --batch "$guess" "$COREFILE" && found=x + rm "$GDBCOMMANDFILE" + echo + fi + done + if [ -z "$found" -a "$EXITCODE" -ge 128 ]; then + echo + echo "No core file identified in directory ${COREDIR}" + echo "To show backtraces for crashes during test execution," + echo "enable core files with:" + echo + echo " ulimit -c unlimited" + echo + exit 1 + fi +else + echo "You need gdb in your path to show backtraces" + exit 1 +fi |