diff --git a/test/core/util/test_config.c b/test/core/util/test_config.c index 6755d117cb7dacb93f97de4ce3548f8620bf5dad..348b9229bd606e21a028c9108f47d0d8c22c656e 100644 --- a/test/core/util/test_config.c +++ b/test/core/util/test_config.c @@ -123,13 +123,17 @@ static void crash_handler(int signum, siginfo_t *info, void *data) { addrlen = backtrace(addrlist, GPR_ARRAY_SIZE(addrlist)); - symlist = backtrace_symbols(addrlist, addrlen); - for (i = 0; i < addrlen; i++) { - output_string(" "); - output_string(symlist[i]); - output_string("\n"); + if (addrlen == 0) { + output_string(" no backtrace\n"); + } else { + symlist = backtrace_symbols(addrlist, addrlen); + for (i = 0; i < addrlen; i++) { + output_string(" "); + output_string(symlist[i]); + output_string("\n"); + } + free(symlist); } - free(symlist); raise(signum); }