diff --git a/solenv/bin/gdbtrycatchtrace-stdout b/solenv/bin/gdbtrycatchtrace-stdout new file mode 100644 index 000000000000..e606a4f12f86 --- /dev/null +++ b/solenv/bin/gdbtrycatchtrace-stdout @@ -0,0 +1,14 @@ +set pagination off +catch throw +commands + bt + cont +end +catch catch +commands + bt + cont +end +run +bt +quit diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk index e0d61433cdc8..690d3bafeb02 100644 --- a/solenv/gbuild/CppunitTest.mk +++ b/solenv/gbuild/CppunitTest.mk @@ -32,11 +32,15 @@ DBGSV_ERROR_OUT := shell export DBGSV_ERROR_OUT +ifeq ($(strip $(DEBUGCPPUNIT)),TRUE) +gb_CppunitTest_GDBTRACE := gdb -nx --command=$(SOLARENV)/bin/gdbtrycatchtrace-stdout -return-child-result --args +endif + # defined by platform # gb_CppunitTest_TARGETTYPE # gb_CppunitTest_get_filename gb_CppunitTest_CPPTESTTARGET := $(call gb_Executable_get_target,cppunit/cppunittester) -gb_CppunitTest_CPPTESTCOMMAND := $(gb_CppunitTest_CPPTESTPRECOMMAND) $(gb_CppunitTest_CPPTESTTARGET) +gb_CppunitTest_CPPTESTCOMMAND := $(gb_CppunitTest_CPPTESTPRECOMMAND) $(gb_CppunitTest_GDBTRACE) $(gb_CppunitTest_CPPTESTTARGET) gb_CppunitTest__get_linktargetname = CppunitTest/$(call gb_CppunitTest_get_filename,$(1)) .PHONY : $(call gb_CppunitTest_get_clean_target,%)