1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 07:37:44 +00:00
serenity/Userland/DevTools/Profiler
Gunnar Beutner 15b69eef66 Profiler: Fix loading profiles which previously would crash the profiler
The profiler tried to be clever when handling process_exit events by
subtracting one from the timestamp. This was supposed to ensure that
events after a process' death would be attributed to the new process
in case the old process used execve(). However, if there was another
event (e.g. a CPU sample) at the exact same time the process_exit
event was recorded the profile would fail to load because we
didn't find the process anymore.

This changes introduces a new problem where samples would be attributed
to the incorrect process if a CPU sample for the old process, a
process_exit as well as a process_create event plus another CPU sample
event for the new process happened at the exact same time. I think
it's a reasonable compromise though.
2021-06-02 09:24:58 +02:00
..
CMakeLists.txt Profiler: Remove the old process selection widget 2021-05-07 15:26:51 +02:00
DisassemblyModel.cpp Profiler: Split the call tree into one subtree per process 2021-05-22 22:23:52 +02:00
DisassemblyModel.h Profiler: Mark model columns as non-sortable 2021-05-14 17:17:17 +02:00
Histogram.h Profiler: Add histogram for sample counts 2021-05-14 00:35:57 +02:00
IndividualSampleModel.cpp Profiler: Move everything into the "Profiler" namespace 2021-05-04 20:59:32 +02:00
IndividualSampleModel.h Profiler: Move everything into the "Profiler" namespace 2021-05-04 20:59:32 +02:00
main.cpp Profiler: Use a more reasonable default event mask 2021-05-28 08:00:14 +02:00
Process.cpp Profiler: Move everything into the "Profiler" namespace 2021-05-04 20:59:32 +02:00
Process.h Profiler: Split the call tree into one subtree per process 2021-05-22 22:23:52 +02:00
Profile.cpp Profiler: Fix loading profiles which previously would crash the profiler 2021-06-02 09:24:58 +02:00
Profile.h Profiler: Split the call tree into one subtree per process 2021-05-22 22:23:52 +02:00
ProfileModel.cpp Profiler: Split the call tree into one subtree per process 2021-05-22 22:23:52 +02:00
ProfileModel.h Profiler: Mark model columns as non-sortable 2021-05-14 17:17:17 +02:00
SamplesModel.cpp Kernel+Profiler: Track lost time between profiler timer ticks 2021-05-14 00:35:57 +02:00
SamplesModel.h Profiler: Mark model columns as non-sortable 2021-05-14 17:17:17 +02:00
TimelineContainer.cpp Profiler: Hide timeline scrollbars if we don't need them :^) 2021-05-25 19:04:17 +02:00
TimelineContainer.h Profiler: Add fixed track headers to the timeline view 2021-05-06 22:18:45 +02:00
TimelineHeader.cpp Profiler: Make processes selectable in the timeline view 2021-05-07 15:26:51 +02:00
TimelineHeader.h Profiler: Make processes selectable in the timeline view 2021-05-07 15:26:51 +02:00
TimelineTrack.cpp Profiler: Allow scaling the timeline with Ctrl+MouseWheel :^) 2021-05-22 23:20:31 +02:00
TimelineTrack.h Profiler: Allow scaling the timeline with Ctrl+MouseWheel :^) 2021-05-22 23:20:31 +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