Commit Graph

17 Commits

Author SHA1 Message Date
d8ba258051 libsysprof-analyze: give SysprofDocument a title 2023-06-30 13:23:54 -07:00
13323c5e79 libsysprof-analyze: improve progress notifications 2023-06-21 22:06:42 -07:00
43ec0e48f5 libsysprof-gtk: start on some loading progress 2023-06-19 19:00:22 -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
ff41633abc libsysprof-analyze: use EggBitset instead of GTK
This uses the newly brought in EggBitset instead of GtkBitset so that we
can drop our GTK dependency in the libsysprof-analyze library.
2023-05-25 15:16:13 -07:00
1b0434c854 libsysprof-analyze: add private API to get the kernel symbol
We may need to inject "- - Kernel - -" in some stack traces.
2023-05-25 11:13:57 -07:00
f12f2b760c libsysprof-analyze: add API to get symbol to represent process
And include a fallback in case we never got an actual Process frame which
will contain the cmdline for the process. We need to hold onto the fallback
too so that we can keep symbols lightweight by not having to reference them
so long as the document is alive.
2023-05-24 15:19:44 -07:00
d510dd50da libsysprof-analyze: add support for getting counter values 2023-05-22 16:46:36 -07:00
227362ea09 libsysprof-analyze: load counter values with document 2023-05-22 16:04:29 -07:00
fa55594e23 libsysprof-analyze: make return type GRefString 2023-05-15 12:46:46 -07:00
00ecc41209 libsysprof-analyze: make SysprofDocumentSymbols private
This instead moves to a public API on the document to symbolize now
that we've gotten much of the necessary bits private in loading the
document. This commit ensures that we only do loading via the loader
now (and removes the incorrect use from the tests so they too go
through the loader).

We check for NoSymbolizer in document symbols so that we can skip any
decoding. That keeps various use cases fast where you don't want to
waste time on symbolizing if you don't need to look at symbols.

There is plenty more we can do to batch decode symbols with some more
API changes, but that will come after we have kernel/userland decoding
integrated from this library.

We may still want to get all symbols into a single symbol cache, but
given that we have address ranges associated with them, that may not
be very useful beyond the hashtable to pid-specific cache we have now.

If symbols were shared between processes, that'd make more sense, but
we aren't doing that (albeit strings are shared between symbol
instances to reduce that overhead).
2023-05-15 10:56:09 -07:00
3350ad61eb libsysprof-analyze: introduce SysprofDocumentLoader
and thereby make a bunch of the exposed API on SysprofDocument private.
Instead we'll push some of that to the loader but for now the tests can
keep doing what their doing using the private API.

The goal here is to not expose a SysprofDocument pointer until the document
has been loaded and symbolized via the loader API. Then we can lookup
symbols directly from the document w/o intermediary objects.
2023-05-12 15:41:48 -07:00
1c75c4c548 libsysprof-analyze: rename samples to traceables
This includes all current traceables, not just samples, so make the name
a bit more clear which it is.
2023-05-05 13:03:03 -07:00
10c332d5d2 libsysprof-analyze: index traceables for faster access
This allows us to skip past all the nodes we don't care about with
relatively low overhead once the document has been generated.
2023-05-03 17:44:15 -07:00
c0ade7da01 libsysprof-analyze: add helper for native byte order 2023-05-03 17:07:19 -07:00
4505e8bb85 libsysprof-analyze: use ref strings internally
This gives us a bit more control than the string chunk, so long as we can
rely on the allocator to do something nice.
2023-05-02 13:30:09 -07:00
ffb6533e02 libsysprof-analyze: add API for intern'ing strings in document
We will want to re-use strings as much as we can for resolving symbols,
tags, etc.
2023-05-01 11:39:55 -07:00