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.
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.
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.
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.
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.
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.
This is like sample but has an "enter/exit" flag with it. This can be
useful when you want to provide tracing instead of sampling. We use a
different frame type so that we can denote that this isn't traditional
sampling, and the flag can be used to find the next exit for the current
enter for calculating durations.
The entire stack trace is provided to make things easier on tools
which may want to deal with indirect functions that were not instrumented
but can be unwound. That may allow for tooling to give the user some
insight that it's not *just* this function entering, but some functions
before it were entered too.
This also adds a SysprofTracer instrument which will preload a
libsysprof-tracer-6.so into the process providing the
__cyg_profile_func_enter() and __cyg_profile_func_leave() hooks.
This allows instruments to record a diagnostic and have it land as an
object in a GListModel of diagnostics available to the API consumer.
Such items may be used by recording UI to display issues with the recording
to the user.
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.
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.