[Libreoffice-commits] core.git: solenv/bin solenv/gbuild
Noel Grandin (via logerrit)
logerrit at kemper.freedesktop.org
Wed Jun 3 12:09:10 UTC 2020
solenv/bin/lldb-core-bt.sh | 50 +++++++++++++++++++++++++++++++++++++++
solenv/gbuild/platform/macosx.mk | 3 ++
2 files changed, 53 insertions(+)
New commits:
commit 756c027198adc5212d46d72e0628c90698652af5
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Wed Jun 3 08:55:32 2020 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Wed Jun 3 14:08:37 2020 +0200
enable backtraces for unit tests on macos
Change-Id: I4f07e1e7b35bccc217d78662a45ac5eaf5865ee7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95394
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/solenv/bin/lldb-core-bt.sh b/solenv/bin/lldb-core-bt.sh
new file mode 100755
index 000000000000..2bd982ec21e9
--- /dev/null
+++ b/solenv/bin/lldb-core-bt.sh
@@ -0,0 +1,50 @@
+#!/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 lldb)"
+then
+ found=
+ for COREFILE in "$COREDIR"/core*
+ do
+ if [ -f "$COREFILE" ]
+ then
+ printf '\nIt looks like %s generated %s\nBacktraces:\n' \
+ "$EXECUTABLE" "$COREFILE"
+ $LLDBCOMMANDFILE=$(mktemp)
+ guess=$(file "$COREFILE")
+ guess=${guess#* execfn: \'}
+ guess=${guess%%\'*}
+ if [ ! -x "$guess" ]; then guess=$EXECUTABLE; fi
+ printf "target create -c $COREFILE $guess\nthread backtrace all\nquit\n" >"$LLDBCOMMANDFILE"
+ lldb -s "$LLDBCOMMANDFILE" --batch \
+ && found=x
+ rm "$LLDBCOMMANDFILE"
+ 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 lldb in your path to show backtraces"
+ exit 1
+fi
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index c743511207ce..f9a805b6b62e 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -266,7 +266,10 @@ gb_CppunitTest_malloc_check := MallocScribble=1 MallocPreScribble=1
define gb_CppunitTest_CppunitTest_platform
$(call gb_LinkTarget_get_target,$(2)) : RPATH :=
$(call gb_LinkTarget_get_target,$(2)) : LAYER := NONE
+endef
+define gb_CppunitTest_postprocess
+$(SRCDIR)/solenv/bin/lldb-core-bt.sh $(1) $(2) $(3)
endef
# JunitTest class
More information about the Libreoffice-commits
mailing list