diff options
-rw-r--r-- | os/backtrace.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/os/backtrace.c b/os/backtrace.c index 99d776950..bf7ee68e2 100644 --- a/os/backtrace.c +++ b/os/backtrace.c @@ -97,9 +97,14 @@ xorg_backtrace(void) else filename = "?"; - ErrorFSigSafe("%u: %s (%s%s+0x%x) [%p]\n", i++, filename, procname, - ret == -UNW_ENOMEM ? "..." : "", (int)off, - (void *)(uintptr_t)(ip)); + + if (unw_is_signal_frame(&cursor)) { + ErrorFSigSafe("%u: <signal handler called>\n", i++); + } else { + ErrorFSigSafe("%u: %s (%s%s+0x%x) [%p]\n", i++, filename, procname, + ret == -UNW_ENOMEM ? "..." : "", (int)off, + (void *)(uintptr_t)(ip)); + } ret = unw_step(&cursor); if (ret < 0) |