Commit Graph

14 Commits

Author SHA1 Message Date
15acac7e2e libsysprof-analyze: allow specifying kallsyms path
This is useful when opening an older capture which will not have embedded
the kallsyms content into the capture.
2023-05-19 17:28:11 -07:00
c3f67eb988 libsysprof-analyze: allow specifying external debug dirs from test 2023-05-23 10:47:42 -07:00
c2c4495e3c libsysprof-analyze: add --silent option for test
This allows testing loading without the print overhead.
2023-05-22 17:16:48 -07:00
9e5a241fef libsysprof-analyze: add jitmap symbolizer
This symbolizes using the SysprofCaptureJitmap frames within the capture
document. Currently it only implements the fast path which can avoid a
binary search on the jitmap data.
2023-05-22 13:21:06 -07:00
140bc1d384 libsysprof-analyze: add scaffolding for elf symbol resolver 2023-05-15 15:03:25 -07:00
d415f29a15 libsysprof-analyze: allow disabling bundled symbolizer 2023-05-15 14:52:59 -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
9f6e16e373 libsysprof-analyze: take depth from translation func 2023-05-12 14:29:16 -07:00
c0bc3c047a libsysprof-analyze: get stack addresses as group 2023-05-11 15:38:14 -07:00
6daff5ac6e libsysprof-analyze: return symbols for context switches 2023-05-08 15:49:42 -07:00
dc57721699 libsysprof-analyze: add some dummy symbolize example
We still need the document symbols to do the right thing, which we will
get to after we have access to mount namespace and file loading.
2023-05-08 14:01:17 -07:00
f2479912e6 libsysprof-analyze: cleanup some helper code for symbolize 2023-05-08 12:24:44 -07:00
5d255bcb80 libsysprof-analyze: add simple test for symbolizer API 2023-05-03 17:09:18 -07:00