You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
928 B
34 lines
928 B
commit 2d1a32ab4b0ce488726dd8929c85840dc73ed7dd
|
|
Author: Andy Lutomirski <luto@kernel.org>
|
|
Date: Tue Sep 15 18:27:52 2015 -0700
|
|
|
|
Switch show_stackframe to backtrace_symbols_fd
|
|
|
|
It's simpler and avoids calling into fprintf in contexts in which
|
|
it might crash or deadlock.
|
|
|
|
diff --git a/src/common.cpp b/src/common.cpp
|
|
index 78d0e23865c5..f5eb2ca5b921 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)
|