Crashlog: Adjust Linux stacktrace format when using BFD

pull/642/head
Jonathan G Rennison 4 months ago
parent a4c14171a7
commit d00424008f

@ -590,18 +590,19 @@ class CrashLogUnix : public CrashLog {
demangled = abi::__cxa_demangle(func_name, nullptr, 0, &status);
#endif /* WITH_DEMANGLE */
const char *name = (demangled != nullptr && status == 0) ? demangled : func_name;
buffer += seprintf(buffer, last, " [%02i] %*p %-40s %s + 0x%zx\n", i, ptr_str_size,
buffer += seprintf(buffer, last, " [%02i] %*p %-40s %s + 0x%zx", i, ptr_str_size,
trace[i], info.dli_fname, name, (char *)trace[i] - (char *)func_addr);
free(demangled);
} else if (dladdr_result && info.dli_fname) {
buffer += seprintf(buffer, last, " [%02i] %*p %-40s + 0x%zx\n", i, ptr_str_size,
buffer += seprintf(buffer, last, " [%02i] %*p %-40s + 0x%zx", i, ptr_str_size,
trace[i], info.dli_fname, (char *)trace[i] - (char *)info.dli_fbase);
} else {
ok = false;
}
if (file_name != nullptr) {
buffer += seprintf(buffer, last, "%*s%s:%u\n", 7 + ptr_str_size, "", file_name, line_num);
if (ok && file_name != nullptr) {
buffer += seprintf(buffer, last, " at %s:%u", file_name, line_num);
}
if (ok) buffer += seprintf(buffer, last, "\n");
#if defined(WITH_BFD)
if (ok && bfd_info.found && bfd_info.abfd) {
uint iteration_limit = 32;
@ -613,15 +614,16 @@ class CrashLogUnix : public CrashLog {
demangled = abi::__cxa_demangle(func_name, nullptr, 0, &status);
#endif /* WITH_DEMANGLE */
const char *name = (demangled != nullptr && status == 0) ? demangled : func_name;
buffer += seprintf(buffer, last, " [inlined] %*s %s\n", ptr_str_size + 36, "",
buffer += seprintf(buffer, last, " [inlined] %*s %s", ptr_str_size + 36, "",
name);
free(demangled);
} else if (file_name) {
buffer += seprintf(buffer, last, " [inlined]\n");
buffer += seprintf(buffer, last, " [inlined]");
}
if (file_name != nullptr) {
buffer += seprintf(buffer, last, "%*s%s:%u\n", 7 + ptr_str_size, "", file_name, line_num);
buffer += seprintf(buffer, last, " at %s:%u", file_name, line_num);
}
buffer += seprintf(buffer, last, "\n");
}
}
#endif /* WITH_BFD */

Loading…
Cancel
Save