1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-15 15:21:00 +00:00
serenity/Userland/DevTools/Profiler
Daniel Bertalan ac1cac286b Profiler: Fix disassembling objects with a non-zero .text vaddr
Previously, we assumed that the `.text` segment was loaded at vaddr 0 in
shared object, which is not the case with `-z separate-code` enabled.
Because we didn't do the right calculations to translate an address from
a performance event into its value within the ELF file, Profiler would
try to disassemble out-of-bounds memory locations, leading to a crash.

This commit also changes `LibraryMetadata` to apply to a loaded library
as a whole, not just to one of its segments (like .text or .data). This
lets us simplify the interface, as we no longer have to worry about
`text_base`.

Fixes #10628
2021-10-25 12:14:26 +02:00
..
CMakeLists.txt Profiler: Add a flamegraph view for the stack 2021-08-31 12:40:51 +02:00
DisassemblyModel.cpp LibX86: Take load base address into consideration during disassembly 2021-10-25 12:14:26 +02:00
DisassemblyModel.h Everywhere: Replace Model::update() with Model::invalidate() 2021-08-06 19:14:31 +02:00
EventSerialNumber.h Profiler: Use sequential serial numbers for profiling events 2021-06-03 01:16:32 +01:00
FlameGraphView.cpp Profiler: Minor static code analysis issues in FlameGraphView 2021-09-01 18:06:14 +02:00
FlameGraphView.h Profiler: Use = default for empty destructor 2021-09-01 18:06:14 +02:00
Histogram.h Profiler: Add histogram for sample counts 2021-05-14 00:35:57 +02:00
IndividualSampleModel.cpp Everywhere: Replace Model::update() with Model::invalidate() 2021-08-06 19:14:31 +02:00
IndividualSampleModel.h Everywhere: Replace Model::update() with Model::invalidate() 2021-08-06 19:14:31 +02:00
main.cpp Profiler: Add a flamegraph view for the stack 2021-08-31 12:40:51 +02:00
Process.cpp Profiler: Fix disassembling objects with a non-zero .text vaddr 2021-10-25 12:14:26 +02:00
Process.h Profiler: Fix disassembling objects with a non-zero .text vaddr 2021-10-25 12:14:26 +02:00
Profile.cpp Profiler: Add a "Signposts" tab next to the "Samples" tab 2021-08-14 01:28:26 +02:00
Profile.h Profiler: Add a "Signposts" tab next to the "Samples" tab 2021-08-14 01:28:26 +02:00
ProfileModel.cpp Profiler: Make the ProfileModel searchable 2021-09-14 21:33:15 +04:30
ProfileModel.h Profiler: Make the ProfileModel searchable 2021-09-14 21:33:15 +04:30
SamplesModel.cpp Everywhere: Replace Model::update() with Model::invalidate() 2021-08-06 19:14:31 +02:00
SamplesModel.h Everywhere: Replace Model::update() with Model::invalidate() 2021-08-06 19:14:31 +02:00
SignpostsModel.cpp Profiler: Add a "Signposts" tab next to the "Samples" tab 2021-08-14 01:28:26 +02:00
SignpostsModel.h Profiler: Add a "Signposts" tab next to the "Samples" tab 2021-08-14 01:28:26 +02:00
TimelineContainer.cpp Profiler: Limit the initial size of the timeline container 2021-08-18 13:06:27 +02:00
TimelineContainer.h Profiler: Add fixed track headers to the timeline view 2021-05-06 22:18:45 +02:00
TimelineHeader.cpp DevTools: Remove unused header includes 2021-08-01 08:10:16 +02:00
TimelineHeader.h Everywhere: Forward declare structs as structs 2021-07-08 10:11:00 +02:00
TimelineTrack.cpp Profiler: Handle profiles with more kernel samples than user samples 2021-10-24 23:04:47 +02:00
TimelineTrack.h Profiler: Parse and paint profile signpost events :^) 2021-08-12 00:03:38 +02:00
TimelineView.cpp Profiler: Allow scaling the timeline with Ctrl+MouseWheel :^) 2021-05-22 23:20:31 +02:00
TimelineView.h Profiler: Allow scaling the timeline with Ctrl+MouseWheel :^) 2021-05-22 23:20:31 +02:00