From c879140663858363ccf94348150a7aa7ace031c5 Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Tue, 5 Jan 2016 11:16:03 +0100 Subject: [PATCH] Print the exit status of addr2line --- cmdline/unix.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cmdline/unix.c b/cmdline/unix.c index 9345b571..83ca29b4 100644 --- a/cmdline/unix.c +++ b/cmdline/unix.c @@ -1141,13 +1141,19 @@ void os_abort(void) printf("[bt] %02u: %s\n", i, msg); if (messages) { + int ret; char addr2line[1024]; size_t j = 0; while (msg[j] != '(' && msg[j] != ' ' && msg[j] != 0) ++j; snprintf(addr2line, sizeof(addr2line), "addr2line %p -e %.*s", stack[i], (unsigned)j, msg); - system(addr2line); + + ret = system(addr2line); + if (WIFEXITED(ret) && WEXITSTATUS(ret) != 0) + printf("exit:%d\n", WEXITSTATUS(ret)); + if (WIFSIGNALED(ret)) + printf("signal:%d\n", WTERMSIG(ret)); } } #endif