Commit Graph

269 Commits

Author SHA1 Message Date
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
87e28a6062 libsysprof-gtk: use timeseries for rendering chart marks
This allows us to pre-calculate the values and re-use them, while also
allowing for us to avoid inflating GObject's for marks unless it becomes
necessary to access additional information.
2023-06-16 13:08:31 -07:00
aa3aacc721 libsysprof-gtk: add intermediate chart item
This will give us a place to deal with filtering as well as caching
points based on the selected time range.
2023-06-16 10:54:43 -07:00
a3e08b441f libsysprof-gtk: map in the mark chart item
This gets the auto-filtering into account, but we still need to get the
drawing of time ranges to use the proper timespan.
2023-06-15 17:49:32 -07:00
f2f47b12d7 libsysprof-gtk: make chart row use :model property
This will allow us to make a map model and then bind from that after
filtering based on selection.
2023-06-15 17:14:03 -07:00
5e18436a15 libsysprof-gtk: add SysprofMarkChartItem
The goal here is to use a map list model to convert to these and then to
use the session filter to apply the selection.
2023-06-15 17:08:38 -07:00
b718e3ac9e libsysprof-gtk: set session time range from document
This will eventually get updated as selections are made, and various other
components can adapt to that change.
2023-06-15 16:43:49 -07:00
d4da036f73 libsysprof-analyze: move timespan to analyze library
That way we can use it for the document itself, and have it update the
timespan of the recording in case it didn't get updated due to ctrl+c or
something prematurely stopping.
2023-06-15 16:43:17 -07:00
9eca425a25 libsysprof-gtk: add timespan to session
We want to be able to monitor this from session observers to be able to
update the visible area and/or what is rendered.
2023-06-15 16:32:12 -07:00
d458d312a3 libsysprof-gtk: start on a chart row
This is just playing around to get things to render. There is much to do
to ensure that we interact with this well (and cache some values for
faster generation on allocation changes).
2023-06-15 16:15:11 -07:00
7568c31fcf libsysprof-gtk: use listview instead of columnview
We don't really want the columnview headers at all, so just use listview
and we'll use our inscription to control the size of the name "column".
2023-06-15 13:28:03 -07:00
1455876835 libsysprof-analyze: make mark catalog work with sections
This allows us more flexibility with creating sections usin the flatten
list model as the rows need to contain the data for the headers.
2023-06-15 13:19:18 -07:00
2fb3815af3 libsysprof-gtk: tweak sizing and expansion 2023-06-15 12:45:54 -07:00
a25b7a8141 libsysprof-gtk: add columnview header-factory experiment 2023-06-15 12:34:49 -07:00
8558cd1b58 libsysprof-gtk: remove marktable stiple
This doesn't work when you have recycling rows because even/odd isn't
stable. Additionally, the hover highlight is generally enough to be able
to give yourself a guide to read across columns.
2023-06-14 22:38:42 -07:00
b0742d1368 libsysprof-gtk: tweak styling for marktable 2023-06-14 22:31:59 -07:00
11387e5a55 libsysprof-gtk: add scaffolding for chart widget
This doesn't yet render things, but it starts to get the plumbing in place
so that we can create a custom row type and then consume the marks
catalog from SysprofDocument eventually.
2023-06-14 22:23:18 -07:00
c8ac9fe984 libsysprof-gtk: fix usec/msec groupings 2023-06-14 17:29:18 -07:00
fb1a1b40ee libsysprof-gtk: add sorting for remaining marks columns 2023-06-14 17:21:32 -07:00
344247bf80 libsysprof-gtk: setup default sort for start column
These may not be in order as sometimes threads record at different rates
as well as marks being tacked on at the end from a memfd.
2023-06-14 17:17:03 -07:00
944ed885a8 libsysprof-gtk: show column separators for mark table 2023-06-14 17:16:28 -07:00
e25e44b02a libsysprof-gtk: set numeric for time labels 2023-06-14 17:16:11 -07:00
4551b7871c libsysprof-gtk: set single-line-mode 2023-06-14 17:15:55 -07:00
45465f7d9a libsysprof-gtk: add SysprofMarkTable
This is a raw view of the marks in a session which should help for just
finding the information you care about when the visual model is too
cumbersome or lacks searching capabilities.
2023-06-14 17:02:19 -07:00
be1d56f5db libsysprof-gtk: add SysprofSession
This is meant to become our toplevel object controlling an analysis
session. We need it to know about any filters in place such as time
selections.

Callgraph needs to be updated to use this as well.
2023-06-14 17:01:31 -07:00
5135b404fb libsysprof-gtk: add SysprofTimeLabel
This is useful for things that are durations or time offsets.
2023-06-14 16:59:53 -07:00
5b929b8d5d libsysprof-analyze: add callgraph flags for thread-ids
This allows you to set a flag to show the thread id of what was recorded.

Use this to help disassociate similar threads in a process to figure out
which thread is consuming a majority of the Total time of that process.
2023-06-14 15:11:56 -07:00
54ecdc57cd libsysprof-gtk: set descendants on function selection 2023-06-14 14:25:16 -07:00
a296fa3eab libsysprof-gtk: remove stack frame number
This just wastes space that could be useful for symbols.
2023-06-14 13:55:01 -07:00
93aadbc035 libsysprof-gtk: make list of traceables smaller
It's not that important, only that we can walk through them with the
keyboard in an easier fashion than say, GtkDropDown.
2023-06-14 13:54:41 -07:00
656f95f276 libsysprof-gtk: cleanup xml formatting with xmllint 2023-06-14 13:51:47 -07:00
8edab49028 libsysprof-gtk: add specialized symbol label for descendants
This allows us to provide a bit more context to things in the descendants
callgraph based on the symbol. Context switches get specialized highlight
as well as All Processes and Processes nodes.
2023-06-14 12:09:27 -07:00
21766d275c libsysprof-gtk: shrink callgraph indent after 20 2023-06-13 17:22:59 -07:00
819b6c5a72 libsysprof-gtk: set callgraphview css name 2023-06-13 17:22:40 -07:00
2034811ec7 libsysprof-gtk: give some space for symbols in descendants 2023-06-13 17:04:56 -07:00
8bd585d37b libsysprof-gtk: select function from traceable 2023-06-13 17:00:05 -07:00
6d5d5db8bb libsysprof-gtk: use libpanel for PanelPaned
This responds to expand a bit more like we want.
2023-06-13 14:09:33 -07:00
1e2081f681 libsysprof-gtk: simplify time to string output 2023-06-13 13:53:59 -07:00
6ab28ff641 libsysprof-analyze: make summary augmentation optional
That way the descendant graphs can generate the self values but ignore the
summary augmentation (as that would mess up the generated values).

This fixes it so that showing the descendants tree keeps proper Total
and Self values.
2023-06-13 10:31:42 -07:00
ee5ff400e7 libsysprof-gtk: use shortcut controller for actions 2023-06-13 10:04:44 -07:00
ea297b79ba libsysprof-gtk: show descendents when caller selection changes 2023-06-12 22:59:42 -07:00
535c7be1e4 libsysprof-gtk: add depth of traceable to column view 2023-06-12 16:49:32 -07:00
6a71988020 libsysprof-gtk: show stack traces when traceable is selected 2023-06-12 16:41:50 -07:00
b3bd853168 libsysprof-gtk: use label for better sizing 2023-06-12 15:46:30 -07:00
2a95b6fe28 libsysprof-gtk: show a list of backtraces on the right
When selecting a callback node, show all a list of all of the traces where
that occurred on the right, so that you can select them individually.

Currently this only shows pid/time for on the right, but we'll add another
pane that will show the symbolized backtrace soon.
2023-06-12 15:42:33 -07:00
abdd546197 libsysprof-gtk: add getter for callgraph 2023-06-12 12:52:32 -07:00
68424bb4a5 libsysprof-gtk: allow sorting descendants name column 2023-06-12 12:42:17 -07:00
217f992211 libsysprof-gtk: tweak single selections a bit 2023-06-12 12:31:36 -07:00
98b84def81 libsysprof-gtk: allow sorting by function name 2023-06-12 12:31:25 -07:00
ac09c98b70 libsysprof-gtk: add stub for caller selection changed 2023-06-12 12:17:36 -07:00