Commit Graph

3101 Commits

Author SHA1 Message Date
982eee7f31 libsysprof-analyze: return NULL if series is empty 2023-06-20 15:34:43 -07:00
faf2303015 libsysprof-gtk: rename depth layer to column layer
I would like this to eventually be a bit more re-usable for XYSeries and
more than just "stack depth" for the traceables.
2023-06-20 14:30:03 -07:00
b40be19530 libsysprof-analyze: add test for symbol collision 2023-06-20 14:24:02 -07:00
07d08597ba libsysprof-analyze: handle collision in symbol cache
If we have two nodes that collide for address space, we need to keep the
one we already have in the symbol cache. The other node cannot be cached
and will be dropped instead.

This fixes a leak when collisions occur.
2023-06-20 14:23:46 -07:00
1aafb143fd libsysprof-analyze: clear stream on finalize 2023-06-20 14:22:51 -07:00
5787809f95 libsysprof-analyze: add simple strings test for asan
This just helps track down if there are any leaks via asan.
2023-06-20 13:49:49 -07:00
7595c611d7 libsysprof-analyze: remove unused function
No need for the "peek" variant, so just remove it.
2023-06-20 13:39:09 -07:00
c86a4e2f03 libsysprof-gtk: print layer item information when activated 2023-06-20 13:26:22 -07:00
50b9aa2567 libsysprof-gtk: allow chart to activate layer item on click 2023-06-20 13:26:07 -07:00
cf1b3ae16f libsysprof-gtk: add vfunc to get a model item at x,y 2023-06-20 13:25:49 -07:00
85b233d0d8 libsysprof-gtk: fix getter for value 2023-06-20 13:25:26 -07:00
075c8e664d libsysprof-gtk: break value at x,y coord into helper 2023-06-20 13:01:07 -07:00
b125f4e6e9 libsysprof-gtk: highlight item on motion 2023-06-20 12:46:15 -07:00
d68f2ff87a libsysprof-gtk: add snapshot_motion to chart layer
This allows snapshoting the motion highlight separate from the rest of the
layer so that we can have better render tree diffs. Otherwise we risk
having to snapshot a large dataset from the chart layer itself rather than
just the hightlight areas that changed.
2023-06-20 12:45:43 -07:00
86f5fc6338 libsysprof-gtk: create depth chart for samples 2023-06-20 11:50:05 -07:00
0cdb97973a libsysprof-gtk: implement some basic depth chart drawing 2023-06-20 11:49:53 -07:00
c2a8b04cf7 libsysprof-analyze: ignore inf/-inf values in xy series 2023-06-20 11:49:34 -07:00
d0d19cff39 libsysprof-analyze: use doubles for reference data
We only want to move to float for the internal 0..1 positions which are
used to draw to the screen (to reduce how much data we hold on to). But for
the data we need to calculate those 0..1 positions, we want better
precision for large numbers. Use double for all of those.
2023-06-20 11:49:22 -07:00
72d489f786 libsysprof-analyze: use weak backpointers for child listmodel 2023-06-20 11:26:10 -07:00
ab5c0c2bf7 libsysprof-analyze: don't leak subvolume mount option 2023-06-20 11:19:01 -07:00
e05dcdde03 libsysprof-gtk: start on test for charts 2023-06-20 11:10:43 -07:00
2a27bae70b libsysprof-gtk: add session object to chart 2023-06-20 11:10:33 -07:00
23944627ea libsysprof-gtk: be safer about multiple dispose calls 2023-06-20 11:09:59 -07:00
dcdc859759 libsysprof-gtk: add chart headers to toplevel header 2023-06-20 11:09:25 -07:00
92d3d5901d libsysprof-gtk: janitorial cleanup 2023-06-20 11:09:05 -07:00
d7e889ebc8 libsysprof-gtk: ensure layer has allotment for private struct 2023-06-20 11:04:40 -07:00
3dfd5c0550 libsysprof-analyze: make error message better 2023-06-20 11:03:56 -07:00
29c72cf202 libsysprof-analyze: cleanup tid->symbol hashtable 2023-06-20 11:03:43 -07:00
4d86d8641a libsysprof-analyze: cleanup kernel symbols 2023-06-20 11:03:31 -07:00
43ec0e48f5 libsysprof-gtk: start on some loading progress 2023-06-19 19:00:22 -07:00
9d6c60a0d6 libsysprof-gtk: add thread toggle for callgraph test 2023-06-18 14:05:44 -07:00
d4efcb04fa libsysprof-gtk: add column for process id
I wish we had a thread-id for messages, but that would require changing
the capture format and/or add a new frame type.
2023-06-18 13:51:35 -07:00
1e3345ae42 libsysprof-gtk: select time range when activating mark w/ duration 2023-06-16 17:28:44 -07:00
01876ed3b9 libsysprof-gtk: always show time for start column
But allow hiding it for the duration column.
2023-06-16 17:21:28 -07:00
7f13f0e327 libsysprof-analyze: ignore end time from syscap header
We are already walking through all the frames so we can guess this better
than what is in the capture file. This helps ensure that loading older
captures still has the end clamped to the last event we'll see.
2023-06-16 17:08:21 -07:00
bbd832015e libsysprof-gtk: start on chart + layers
The goal here is to be able to connect data series such as
SysprofTimeSeries or SysprofXYSeries to various chart layers. Those
chart layers get stacked in a SysprofChart.

Some glue code will be necessary to go from frames into data series but
we can experiment with how to automate that later on.
2023-06-16 17:00:31 -07:00
4e5e6be841 libsysprof-analyze: add API to read back the min/max ranges 2023-06-16 16:58:46 -07:00
06767c0a1d libsysprof-analyze: add an XY series strucuture
This is meant to contain information about XY coordinates that we can
store in a normalized form. That allows them to be reused across different
scales without regenerating them.

It also includes a back-pointer to the model index so that we can pull out
the real object when necessary for drawing.
2023-06-16 16:16:44 -07:00
f53fb38d69 libsysprof-gtk: remove selections from mark chart
This doesn't benefit from a selection currently.
2023-06-16 15:56:02 -07:00
0f113eaad7 libsysprof-gtk: remove debug code 2023-06-16 15:54:00 -07:00
be36f36a0a libsysprof-gtk: select mark time range on double click 2023-06-16 15:52:57 -07:00
ac9a95a92b libsysprof-gtk: add sysprof_session_select_time()
This allows changing the time to a specific section within the document
time span.

It may also update the visible time to include the selected time.
2023-06-16 15:52:39 -07:00
dc4d15442f libsysprof-gtk: allow last item to have text 2023-06-16 15:51:43 -07:00
81453a3ec7 libsysprof-gtk: fix notify of time selection 2023-06-16 15:51:33 -07:00
5c178d0672 libsysprof-gtk: janitorial cleanup 2023-06-16 15:18:28 -07:00
b66791fbcd libsysprof-gtk: draw some information under the pointer 2023-06-16 15:17:30 -07:00
ca892b4f5f libsysprof-gtk: tweak rendering to use CSS named colors
We still don't want to fully rely on the CSS machinery because that would
require widgets, which is far too heavy for the number of render nodes we
need to regularly draw.
2023-06-16 14:52:36 -07:00
906e81ec02 libsysprof-gtk: tweak row title alignment 2023-06-16 13:58:19 -07:00
5839d46694 libsysprof-gtk: draw diamonds above squares 2023-06-16 13:58:02 -07:00
266c15a4e1 libsysprof-gtk: fix duration render and cull text
We don't need to render text in most cases. Additionally, that requires
inflating a GObject to extract from the capture.

Instead, try to determine if we will even want to render the text before
causing any of that work to happen.

Also setup the pixel range for the layout so it may ellipsize as necessary.
2023-06-16 13:38:43 -07:00