From 7c27ba124004491ce7431868c7640a8bdf2003a2 Mon Sep 17 00:00:00 2001 From: Daniel Bertalan Date: Mon, 25 Oct 2021 11:04:31 +0200 Subject: [PATCH] Profiler: Subtract the kernel's base address when searching for symbols Now that the kernel is compiled as a PIE, all addresses are relative to the loaded base address, so Symbolication::kernel_base has to be subtracted off from the absolute addresses if we want to symbolicate them. --- Userland/DevTools/Profiler/DisassemblyModel.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Userland/DevTools/Profiler/DisassemblyModel.cpp b/Userland/DevTools/Profiler/DisassemblyModel.cpp index e0db4e7434..eba347d598 100644 --- a/Userland/DevTools/Profiler/DisassemblyModel.cpp +++ b/Userland/DevTools/Profiler/DisassemblyModel.cpp @@ -51,6 +51,7 @@ DisassemblyModel::DisassemblyModel(Profile& profile, ProfileNode& node) } kernel_elf = make((const u8*)m_kernel_file->data(), m_kernel_file->size()); elf = kernel_elf.ptr(); + base_address = maybe_kernel_base.value(); } else { auto& process = node.process(); auto library_data = process.library_metadata.library_containing(node.address());