Sometimes this is needed for userspace program debugging (such as ports), but sometimes it can crash, so we leave it off by default.
This commit is contained in:
parent
905e71527e
commit
105ed79f8f
kernel
@ -15,3 +15,7 @@
|
||||
# control characters, leading/trailing spaces, problematic characters and invalid UTF-8). Keep in mind that this restriction
|
||||
# is only enforced when creating files; existing files with such illegal filenames are parsed correctly and fully usable.
|
||||
# target_compile_definitions(moon PRIVATE MOON_DISABLE_FILENAME_RESTRICTIONS)
|
||||
|
||||
# Uncomment the line below to make the kernel also calculate stack traces for userspace addresses on program crashes.
|
||||
# This can aid in debugging, but makes the kernel more unstable as stack tracing will access arbitrary userspace memory.
|
||||
# target_compile_definitions(moon PRIVATE MOON_ENABLE_USERSPACE_STACK_TRACES)
|
||||
|
@ -326,7 +326,10 @@ namespace CPU
|
||||
static void backtrace_impl(u64 base_pointer, void (*callback)(u64, void*), void* arg)
|
||||
{
|
||||
StackFrame* current_frame = (StackFrame*)base_pointer;
|
||||
while (current_frame && (u64)current_frame >= 0xFFFF'FFFF'8000'0000 &&
|
||||
while (current_frame &&
|
||||
#ifndef MOON_ENABLE_USERSPACE_STACK_TRACES
|
||||
(u64)current_frame >= 0xFFFF'FFFF'8000'0000 &&
|
||||
#endif
|
||||
MemoryManager::validate_access(current_frame, sizeof(*current_frame), MemoryManager::DEFAULT_ACCESS) &&
|
||||
current_frame->instruction)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user