Commit Graph

2977 Commits

Author SHA1 Message Date
fc9bb894a1 libsysprof-analyze: list traceables containing a callgraph frame
This uses the intersection of all the bitset from the frame to the root to
first reduce the number of traceables to look at. Once we have the
intersection, we check the traceables for prefix and yield another list
model using that bitset index on the same traceables list model.

This can be used to show a supplimental list of all the traceables for a
callgraph up to certain node.
2023-06-12 14:54:04 -07:00
f701e028b4 libsysprof-analyze: add some flags for internal state
This can help us to avoid various work items when processing symbols.
2023-06-12 14:15:08 -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
c8c307cb96 libsysprof-analyze: rename ctor for node
That way we can have an alternate way of creating these that does not
require using a SysprofCallgraphNode.
2023-06-12 12:12:53 -07:00
4e9615571b libsysprof-gtk: add columns for callers list 2023-06-12 12:01:33 -07:00
ff1edcc8c9 libsysprof-gtk: add callers column view 2023-06-12 11:55:24 -07:00
fbe0b99314 libsysprof-analyze: use symbol to get callers list
That keeps the API clear of the indirection Frame object so we can use it
elsewhere like in the functions column view to select callees.
2023-06-12 11:35:01 -07:00
b873ee1f37 libsysprof-analyze: cleanup symbols array in finalize 2023-06-12 11:34:22 -07:00
2c9c41dedc libsysprof-analyze: allow specifying ptr array for symbols
This will allow us to use the same model with a different list of symbols.
2023-06-12 11:34:04 -07:00
fa35089e93 libsysprof-gtk: rename descendants view for legibility 2023-06-12 11:23:35 -07:00
451e79a84c libsysprof-gtk: add augmented functions list
This provides an area to have augmented functions listing like we have in
the 3-part sysprof view in our current release.

The weighed callgrpah view uses this to show self/total sortable columns
similar to the descendants view.
2023-06-12 11:16:41 -07:00
643aa374cb libsysprof-analyze: add GListModel of callgraph symbols
This has an indirect object (SysprofCallgraphSymbol) so that we can provide
plumbing to get the callgraph as well as the augmented data from the
indirection object.

This allows for callgraphs to show overview in the functions list which
contains the same augmentation that the descendants view does.
2023-06-12 11:15:50 -07:00
d8adcb5b48 libsysprof-gtk: reduce chances of cell causing column width change 2023-06-09 21:21:09 -07:00
595045c3fc libsysprof-gtk: expand to process list by default 2023-06-09 18:00:43 -07:00
6b242acbc2 libsysprof-gtk: implement a11y bits for cell progress 2023-06-09 17:53:05 -07:00
b2ded6d231 libsysprof-gtk: use inscription for function name 2023-06-09 17:49:32 -07:00
f0d6f2a5f9 libsysprof-gtk: setup sorters when callgraph is loaded 2023-06-09 17:41:41 -07:00
6ed55e48df libsysprof-gtk: add load vfunc to handle callgraph 2023-06-09 17:41:22 -07:00
13e1ace8dc libsysprof-profile: flush events when disabling 2023-06-09 17:25:57 -07:00
bfbdd3b642 libsysprof-profile: use maps parser from Linux instrument 2023-06-09 17:25:55 -07:00
ee165ea91f libsysprof-profile: add address mappings parser
This parses the contents of /proc/$pid/maps and has a crude helper to test
it against real world files (which found a missing capture we had).
2023-06-09 17:23:06 -07:00
9e8c4dba54 libsysprof-profile: init sysprof clock 2023-06-09 16:35:25 -07:00
e8293edd54 libsysprof-profile: only create fdlist when necessary 2023-06-09 16:35:04 -07:00
283da1e107 libsysprof-profile: fix flags type
So we can pass it right through.
2023-06-09 16:34:49 -07:00
739ff7b19c libsysprof-gtk: make some column values show up 2023-06-09 15:59:21 -07:00
d2a38bf1a6 libsysprof-analyze: introduce [Unwindable] callgraph node
This interjects a node for unwindable traces so that cost gets accounted
to the process, but is not just at the [process] graph item as that makes
it very hard to subtract to figure out what it was.

Instead just insert an [Unwindable] node and cost-account to that.
2023-06-09 15:58:57 -07:00
3f34c4625b libsysprof-analyze: cleanup walking to root 2023-06-09 15:57:52 -07:00
2511e79cae libsysprof-analyze: allow getting root augments with NULL 2023-06-09 15:57:34 -07:00
12f32e8838 libsysprof-analyze: add getter for callgraph from frame 2023-06-09 15:57:16 -07:00
a7443e05f0 libsysprof-analyze: add missing header for summary augment 2023-06-09 15:16:44 -07:00
c35f8d083d libsysprof-analyze: give frame access to callgraph via property 2023-06-09 15:16:04 -07:00
89173fdce7 libsysprof-gtk: some progress style and text tweaks 2023-06-09 15:15:40 -07:00
626ccdce4d libsysprof-gtk: add columns to weighted callgraph view
These don't actually do anything yet, however.
2023-06-09 14:25:16 -07:00
c5b5ae9df7 libsysprof-gtk: add access to internal column_view child 2023-06-09 14:25:16 -07:00
c97c4c0b0a libsysprof-gtk: add SysprofProgressCell
And also, this library is meant to build on libadwaita, so require that
as well going forward.
2023-06-09 14:24:54 -07:00
95281e3cfb libsysprof-gtk: add css loading helper 2023-06-09 14:22:17 -07:00
f4eaf1ec51 libsysprof-gtk: add to weight to summary augment 2023-06-09 11:22:51 -07:00
814c25d45a libsysprof-analyze: add summary augmentation capabilities
This allows us to have augmentation at the summary level so that things
like the weighted callgraph or memprof callgraph can add their respective
summary data up the chain of function calls.
2023-06-09 11:19:40 -07:00
900c39c0d8 libsysprof-analyze: use summary struct for symbol information
We still need to figure out the right way to plumb in the augmentation data
so that things that need to walk up the chain are possible, but this first
gets things in order to do that.
2023-06-09 10:50:39 -07:00
7ec0b8f3a3 libsysprof-gtk: add tooltip for callgraph view 2023-06-08 17:57:44 -07:00
6570087c7c libsysprof-gtk: start on GTK widgetry library
This is ultimately to replace libsysprof-ui, and will focus on the display
of capture files. Recording will be left to the sysprof application in
terms of UI, and other applications like IDEs will use the
libsysprof-profile API directly along with libsysprof-gtk for visualizing.
2023-06-08 17:38:15 -07:00
ca0cff6446 libsysprof-analyze: fix binary-nick usage 2023-06-08 17:29:27 -07:00
2c46d6a4c1 libsysprof-analyze: add listmodel of stacktraces containing symbol 2023-06-08 14:22:18 -07:00
6fc1049e63 libsysprof-analyze: don't duplicate callers 2023-06-06 17:33:42 -07:00
275869b198 libsysprof-analyze: implement basic callers listing
This doesn't give us augmentation data like we would have from the
existing callgraphs, but we can deal with that later.
2023-06-06 17:30:13 -07:00
434cc6ba22 tools: give some feedback about callgraph type 2023-06-06 16:48:50 -07:00