| 31 | } |
| 32 | |
| 33 | void send_backtrace(const char *why) |
| 34 | { |
| 35 | /* We do stderr first, since it's most reliable. */ |
| 36 | warnx("%s (version %s)", why, version()); |
| 37 | if (backtrace_state) |
| 38 | backtrace_print(backtrace_state, 0, stderr); |
| 39 | |
| 40 | if (!bt_print) |
| 41 | return; |
| 42 | |
| 43 | /* Now send to parent. */ |
| 44 | bt_print("%s (version %s)", why, version()); |
| 45 | if (backtrace_state) |
| 46 | backtrace_full(backtrace_state, 0, backtrace_status, NULL, NULL); |
| 47 | } |
| 48 | |
| 49 | static void extract_symname(void *data, uintptr_t pc, |
| 50 | const char *symname, |
no test coverage detected