summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-08-07 20:35:41 +0200
committerAndreas Kling <awesomekling@gmail.com>2019-08-07 20:37:05 +0200
commit308461ca9ab407b0dab25e74565d56b29d179018 (patch)
treebe0b3776be49c26c41746ba2e08dc1e8d02f81e5
parentb67200dfead19f571e6c2c1bedb3eb57ff72dc87 (diff)
downloadserenity-308461ca9ab407b0dab25e74565d56b29d179018.zip
Kernel: Disable kmalloc backtraces during backtrace generation
If kmalloc backtraces are enabled during backtracing, things don't go super well when the backtrace code calls kmalloc().. With this fixed, it's basically possible to get all kmalloc backtraces on the debugger by running (as root): sysctl kmalloc_stacks=1
-rw-r--r--Kernel/KSyms.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/Kernel/KSyms.cpp b/Kernel/KSyms.cpp
index ffe508d99a..77498f8daf 100644
--- a/Kernel/KSyms.cpp
+++ b/Kernel/KSyms.cpp
@@ -139,6 +139,7 @@ void dump_backtrace()
return;
}
TemporaryChange change(in_dump_backtrace, true);
+ TemporaryChange disable_kmalloc_stacks(g_dump_kmalloc_stacks, false);
u32 ebp;
asm volatile("movl %%ebp, %%eax"
: "=a"(ebp));