From 4bef63fa6adafdf6f0fd4ee159349565453afc7f Mon Sep 17 00:00:00 2001 From: Ali Mohammad Pur Date: Sun, 8 Aug 2021 03:01:10 +0430 Subject: [PATCH] Profiler: Show the symbol address in object file --- Userland/DevTools/Profiler/ProfileModel.cpp | 10 ++++++++++ Userland/DevTools/Profiler/ProfileModel.h | 1 + 2 files changed, 11 insertions(+) diff --git a/Userland/DevTools/Profiler/ProfileModel.cpp b/Userland/DevTools/Profiler/ProfileModel.cpp index 26342039b1..3a1c0626f2 100644 --- a/Userland/DevTools/Profiler/ProfileModel.cpp +++ b/Userland/DevTools/Profiler/ProfileModel.cpp @@ -86,6 +86,8 @@ String ProfileModel::column_name(int column) const return "Object"; case Column::StackFrame: return "Stack Frame"; + case Column::SymbolAddress: + return "Symbol Address"; default: VERIFY_NOT_REACHED(); return {}; @@ -130,6 +132,14 @@ GUI::Variant ProfileModel::data(const GUI::ModelIndex& index, GUI::ModelRole rol } return node->symbol(); } + if (index.column() == Column::SymbolAddress) { + if (node->is_root()) + return ""; + auto library = node->process().library_metadata.library_containing(node->address()); + if (!library) + return ""; + return String::formatted("{:p} (offset {:p})", node->address(), node->address() - library->base); + } return {}; } return {}; diff --git a/Userland/DevTools/Profiler/ProfileModel.h b/Userland/DevTools/Profiler/ProfileModel.h index 8adf6fb8c2..46f8fc6131 100644 --- a/Userland/DevTools/Profiler/ProfileModel.h +++ b/Userland/DevTools/Profiler/ProfileModel.h @@ -24,6 +24,7 @@ public: SelfCount, ObjectName, StackFrame, + SymbolAddress, __Count };