1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:57:43 +00:00

Profiler: Split the call tree into one subtree per process

This patch adds an additional level of hierarchy to the call tree:
Every process gets its own top-level node. :^)

Before this, selecting multiple processes would get quite confusing
as all the call stacks from different processes were combined together
into one big tree.
This commit is contained in:
Andreas Kling 2021-05-22 21:22:23 +02:00
parent 65a341b82f
commit 8a5c78e93b
5 changed files with 49 additions and 27 deletions

View file

@ -50,12 +50,8 @@ DisassemblyModel::DisassemblyModel(Profile& profile, ProfileNode& node)
kernel_elf = make<ELF::Image>((const u8*)m_kernel_file->data(), m_kernel_file->size());
elf = kernel_elf.ptr();
} else {
auto process = node.process(profile, node.timestamp());
if (!process) {
dbgln("no process for address {:p}", node.address());
return;
}
auto library_data = process->library_metadata.library_containing(node.address());
auto& process = node.process();
auto library_data = process.library_metadata.library_containing(node.address());
if (!library_data) {
dbgln("no library data for address {:p}", node.address());
return;