sal/osl/unx/signal.cxx | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-)
New commits: commit 74f4f7a9c7a836c7b2a49bf3d61e7e6303071ee9 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Mon Mar 18 12:55:48 2024 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Mon Mar 18 14:47:17 2024 +0100 use our internal backtrace API for signal faults so we get nice stacktraces with function names and line numbers on jenkins Change-Id: Id1bfee014d713ead501e5164e5206d9189ec72a1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164967 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sal/osl/unx/signal.cxx b/sal/osl/unx/signal.cxx index 50c260f9d592..0e05b40a656b 100644 --- a/sal/osl/unx/signal.cxx +++ b/sal/osl/unx/signal.cxx @@ -33,6 +33,7 @@ #include <osl/signal.h> #include <sal/log.hxx> #include <sal/macros.h> +#include <sal/backtrace.hxx> #define ACT_IGNORE 1 #define ACT_EXIT 2 @@ -280,8 +281,7 @@ namespace { void printStack(int sig) { - void *buffer[MAX_STACK_FRAMES]; - int size = backtrace( buffer, SAL_N_ELEMENTS(buffer) ); + std::unique_ptr<sal::BacktraceState> bs = sal::backtrace_get(MAX_STACK_FRAMES); fprintf( stderr, " Fatal exception: Signal %d ", sig ); @@ -289,11 +289,8 @@ void printStack(int sig) fprintf( stderr, "Please turn on Enable Crash Reporting and Automatic Display of Crashlogs in the Console application " ); #endif - if ( size > 0 ) - { - fputs( "Stack: ", stderr ); - backtrace_symbols_fd( buffer, size, fileno(stderr) ); - } + fputs( "Stack: ", stderr ); + fprintf( stderr, "%s ", OUStringToOString( sal::backtrace_to_string(bs.get()), RTL_TEXTENCODING_UTF8 ).getStr() ); } void callSystemHandler(int signal, siginfo_t * info, void * context)