summaryrefslogtreecommitdiff
path: root/Userland/Services
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Services')
-rw-r--r--Userland/Services/CrashDaemon/main.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/Userland/Services/CrashDaemon/main.cpp b/Userland/Services/CrashDaemon/main.cpp
index 5f6ea14fdf..c8b314b10e 100644
--- a/Userland/Services/CrashDaemon/main.cpp
+++ b/Userland/Services/CrashDaemon/main.cpp
@@ -74,8 +74,20 @@ static void print_backtrace(const String& coredump_path)
if (thread_index > 0)
dbgln();
dbgln("--- Backtrace for thread #{} (TID {}) ---", thread_index, thread_info.tid);
- for (auto& entry : backtrace.entries())
+ for (auto& entry : backtrace.entries()) {
+#ifndef BACKTRACE_DEBUG
dbgln("{}", entry.to_string(true));
+#else
+ auto region = coredump->region_containing(entry.eip);
+ String name;
+ u32 base_addr { 0 };
+ if (region) {
+ name = region->region_name;
+ base_addr = region->region_start;
+ }
+ dbgln("{} ({} base: {:p}, offset: {:p})", entry.to_string(true), name, base_addr, entry.eip - base_addr);
+#endif
+ }
++thread_index;
return IterationDecision::Continue;
});