Commit Graph

9 Commits

Author SHA1 Message Date
2a65bf30af libsysprof-analyze: add symbol kind property for symbols
Additionally, add the pid as the binary nick for processes so that we can
show them in the callgraph with the process name.
2023-06-14 12:08:23 -07:00
8af3cd896a libsysprof-analyze: add descendants generation
We still have some work to do here so it doesn't mess up the summary
augmentation, but this is a start on re-generating the callgraphs for a
specific symbol.
2023-06-12 22:59:11 -07:00
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
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
12f32e8838 libsysprof-analyze: add getter for callgraph from frame 2023-06-09 15:57:16 -07:00
c35f8d083d libsysprof-analyze: give frame access to callgraph via property 2023-06-09 15:16:04 -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
3ae108464d libsysprof-analyze: implement augmented callgraph
This creates a SysprofCallgraph object which is a GListModel of
SysprofCallgraphFrame. The SysprofCallgraphFrame is also a GListModel of
SysprofCallgraphFrame so that we can map this all into a GtkListView in
the future for tree-like visibility.

The augmentation allows for the same callgraph code to be used for multiple
scenarios such as CPU sampling as well as memory allocation tracking.

If your augmentation size is <=sizeof(void*) then you do not occur an extra
allocation and you can use the inline augmentation space.

The test-callgraph clearly shows that we still need to do the shuffling
of -- Kernel -- and -- User -- like the old callgraph code did. But that
will come soon enough.
2023-05-24 17:11:30 -07:00
8348f7fe2c libsysprof-analyze: start on scaffolding for callgraph API 2023-05-24 13:00:47 -07:00