The goal here is to have an API that allows us to record things like
frame timing data. We might iterate on this API a bit, but this gets us
started.
A SpCaptureMark with a zero duration should be treated like an epoch mark
once a visualizer is created. SpCaptureMark with a non-zero duration should
be treated like a begin/end of operation. This may be useful in generating
something like a flame graph.
We don't want to avoid adding the symbols to the index table, or we will
get the wrong addresses.
So instead, add them, and then ignore the symbols upon lookup.
This allows us to pass in the file to read from, and adds a quick test
case to view the parsed output. It also fixes a base-10 vs base-16
mistake in parsing addresses.
If we have a system where we can read kallsyms without elevated
privilledges do that. Otherwise, query the sysprod daemon to get the
available kernel symbols.
This allows external tooling to write capture files that Sysprof can open.
Ideally, this will get used by GJS in the near future to implement profiler
output for Sysprof.
We've had a number of errors reported from our previous
model filter implementation. This simplifies the impliementation
using a simple cross-reference structure with GSequenceIter in
both sequences.
We try extra hard to not emit signals when doing invalidation.
The lib/ directory was getting a bit out of hand, so this tries
to organize things a bit so it is easier going forward to locate
the code people want to patch.
We don't expose this via API yet, but it's handy to have it here so we can
build upon it for doing stacked drawings (as useful for things like memory
usage graphs by type).
Now that we are post-3.26, we are removing the legacy autotools
build system in favor of meson.
Please report any errors you have so that we can ensure this is
ready for GNOME 3.28.
This commit extends commit faf1e24edf
"zoom-manager: bring back attribute aligned(8)"
to both places where the attribute was previously dropped from
in commit 63579451b5 "alignment: set alignment on structs".
3.22.3 + commit 6a3d7282ec + commit faf1e24edf + this patch
has been successfully build tested on Debian armhf porterbox
(harris.debian.org). (It also means we end up with exactly
the same as the 3.22.2 + patch situation currently shipped
in Debian 'stretch' 9.0 regarding alignment/cast fixes.)
https://bugzilla.gnome.org/show_bug.cgi?id=784466
This was needed for some other architectures, even though it is problematic
that we have to do it (it should really be the default for the parent
GObject struct).
If we come across a map that is in another namespace, we might need to
translate it to the filesystem/path inside that mount namespace. Otherwise,
we won't be able to accurately decode ELF symbols due to loading the
incorrect binary/debug files.
This gives us the ability to locate symbols by directory in a much more
maintainable manner. Library consumers can adjust their location based
on where they know symbols are likely to be located.