We may not always get this value (in fact, I can't seem to actually get
the Kernel to provide it to me locally), but should we actually get it
this will send that along to the capture writer so it may add a @build-id\0
tail to the SysprofCaptureMap frame.
This allows tacking on suplimental data to the capture with a build-id so
that our SysprofDocumentMmap can read it. The format is @build-id\0 after
the trailing \0 of the filename in a SysprofCaptureMap frame.
We still need to add an additional capture writer so that we can keep the
build-id around, but this gets the mechanics in place to handle the
PERF_EVENT_MMAP2 event type.
We will want to be able to open perf event streams with these options so
that we can get the build-id extracted from an ELF without having to rely
on parsing it at resolution time.
Additionally, it could give us an option for live-decoding at some point
in userspace without having to write the major DWARF capture data to disk.
This merges a mostly completed rewrite of Sysprof using all the new GTK
features we can muster.
In particular, we now have SysprofDocument which can be used to read
documents instead of SysprofCaptureReader for a more document-oriented
experience. It's mmap-based and has significantly more indexing
capabilities for new features.
The recording process still needs a bit more work, along with opening
documents and custom debug-dirs.
Some applications are expected to break, such as gnome-builder which
will have to stop using the now-extinct libsysprof-ui library. Instead
applications should open the capture files with Sysprof directly.