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 };