diff options
author | Andy Lutomirski <luto@kernel.org> | 2015-09-15 18:27:52 -0700 |
---|---|---|
committer | ridiculousfish <corydoras@ridiculousfish.com> | 2015-12-10 01:02:57 -0800 |
commit | fea798011b25dea69c9ea7cc75c13170b99b0e9a (patch) | |
tree | a8f689ec81401d2edd01d873183a1db702510cab /src/common.cpp | |
parent | f17a71de746360822104b6cfeac1fbcad2c8f294 (diff) |
Switch show_stackframe to backtrace_symbols_fd
It's simpler and avoids calling into fprintf in contexts in which
it might crash or deadlock.
Diffstat (limited to 'src/common.cpp')
-rw-r--r-- | src/common.cpp | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/src/common.cpp b/src/common.cpp index 2d844129..aa5b77c8 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -90,17 +90,8 @@ void show_stackframe() int trace_size = 0; trace_size = backtrace(trace, 32); - char **messages = backtrace_symbols(trace, trace_size); - - if (messages) - { - debug(0, L"Backtrace:"); - for (int i=0; i<trace_size; i++) - { - fwprintf(stderr, L"%s\n", messages[i]); - } - free(messages); - } + debug(0, L"Backtrace:"); + backtrace_symbols_fd(trace, trace_size, STDERR_FILENO); } int fgetws2(wcstring *s, FILE *f) |