mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 12:23:15 +00:00
Kernel: Make dump_backtrace_impl() take base pointer as a FlatPtr
Since FlatPtr is register width agnostic. :^)
This commit is contained in:
parent
4177953530
commit
7379c589c7
|
@ -115,7 +115,7 @@ static void load_kernel_sybols_from_data(const ByteBuffer& buffer)
|
|||
g_kernel_symbols_available = true;
|
||||
}
|
||||
|
||||
NEVER_INLINE void dump_backtrace_impl(u32 ebp, bool use_ksyms)
|
||||
NEVER_INLINE void dump_backtrace_impl(FlatPtr base_pointer, bool use_ksyms)
|
||||
{
|
||||
SmapDisabler disabler;
|
||||
#if 0
|
||||
|
@ -141,14 +141,14 @@ NEVER_INLINE void dump_backtrace_impl(u32 ebp, bool use_ksyms)
|
|||
RecognizedSymbol recognized_symbols[max_recognized_symbol_count];
|
||||
size_t recognized_symbol_count = 0;
|
||||
if (use_ksyms) {
|
||||
for (FlatPtr* stack_ptr = (FlatPtr*)ebp;
|
||||
(Process::current ? Process::current->validate_read_from_kernel(VirtualAddress(stack_ptr), sizeof(void*) * 2) : 1) && recognized_symbol_count < max_recognized_symbol_count; stack_ptr = (u32*)*stack_ptr) {
|
||||
for (FlatPtr* stack_ptr = (FlatPtr*)base_pointer;
|
||||
(Process::current ? Process::current->validate_read_from_kernel(VirtualAddress(stack_ptr), sizeof(void*) * 2) : 1) && recognized_symbol_count < max_recognized_symbol_count; stack_ptr = (FlatPtr*)*stack_ptr) {
|
||||
FlatPtr retaddr = stack_ptr[1];
|
||||
recognized_symbols[recognized_symbol_count++] = { retaddr, symbolicate_kernel_address(retaddr) };
|
||||
}
|
||||
} else {
|
||||
for (FlatPtr* stack_ptr = (FlatPtr*)ebp;
|
||||
(Process::current ? Process::current->validate_read_from_kernel(VirtualAddress(stack_ptr), sizeof(void*) * 2) : 1); stack_ptr = (u32*)*stack_ptr) {
|
||||
for (FlatPtr* stack_ptr = (FlatPtr*)base_pointer;
|
||||
(Process::current ? Process::current->validate_read_from_kernel(VirtualAddress(stack_ptr), sizeof(void*) * 2) : 1); stack_ptr = (FlatPtr*)*stack_ptr) {
|
||||
FlatPtr retaddr = stack_ptr[1];
|
||||
dbg() << String::format("%x", retaddr) << " (next: " << String::format("%x", (stack_ptr ? (u32*)*stack_ptr : 0)) << ")";
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue