Commit Graph

3528 Commits

Author SHA1 Message Date
dbb7833cbf libsysprof: join libsysprof-analyze and libsysprof-profile
This brings together the two libraries back into one now that the whole
design is pretty well sorted out. They depend on roughly the same libraries
anyway and it's way easier of the single library can both read and write
the capture files (along with bringing in libsysprof-capture symbols in
a single place).
2023-07-19 17:40:41 -07:00
a990fc6b3c sysprof: fix indent for non-expandable expanders
Instead of doing the indent depth trick that GtkTreeExpander does, this
changes the icon so that we keep the same indent size.
2023-07-19 17:17:42 -07:00
52513c3827 sysprof: mess with fonts less on callgraph view 2023-07-19 17:00:46 -07:00
e45bd8910b sysprof: move view menu into callgraph menu model
This avoids having the extra menu in the header bar and instead puts it
where it has the most value, the callgraph.
2023-07-19 16:54:10 -07:00
b2e3611c52 sysprof: switch over to SysprofTreeExpander
Still a bit more to do, but good enough to switch for now.
2023-07-19 16:48:33 -07:00
4be91a73d8 sysprof: add action to make root 2023-07-19 16:48:00 -07:00
e15bc0c3b9 sysprof: add menu-model support
Show the menu model when right click is pressed.
2023-07-19 16:31:52 -07:00
72f84c2c64 sysprof: add expand/collapse actions
This way we can work with columnview and listview.
2023-07-19 15:40:42 -07:00
3ccf219ec3 sysprof: make double click vs expand work more predictably 2023-07-19 15:24:33 -07:00
e3728cf526 sysprof: fix expand support within a columnview 2023-07-19 15:16:17 -07:00
83c63a09e9 libsysprof-analyze: add n-items property to callgraph frame
Also add a ==0 helper in is_leaf().
2023-07-19 15:15:56 -07:00
69bcc6f200 sysprof: remove use-markup property
This is left to the implementation now w/ a GtkLabel child.
2023-07-19 13:53:22 -07:00
0e1de410a8 sysprof: use child property instead of title for expander 2023-07-19 13:49:47 -07:00
b6445f84e0 sysprof: import SysprofTreeExpander
This came from IdeTreeExpander in Builder and we can tweak it for our needs
here.
2023-07-19 13:32:21 -07:00
8078ecc60a build: fix some various build options 2023-07-19 12:13:27 -07:00
71f73309de sysprof: avoid some overdraws in column layer 2023-07-19 10:43:17 -07:00
88ae57dc73 sysprof: remove availability macros
We don't need this for the application.
2023-07-18 20:00:20 -07:00
c4f1aff24e sysprof: clear sidebar on dispose 2023-07-18 19:37:20 -07:00
af050bc184 sysprof: add F9 for sidebar toggles 2023-07-18 17:37:33 -07:00
e35a9e659b sysprof: show zoom controls when left-sidebar is inactive 2023-07-18 17:29:12 -07:00
a12ffbc063 sysprof: move window menu to primary section
That way it's available when the sidebar is collapsed.
2023-07-18 17:21:04 -07:00
e28d5b7348 sysprof: clamp rectangle to visible area 2023-07-18 16:36:53 -07:00
93255a25f0 sysprof: make scheduler process until deadline elapsed
We don't need to return to the mainloop until our deadline elapses, even
if that source didn't finish processing.
2023-07-18 16:25:56 -07:00
8dd7478e96 janitorial: move dbus service files into sysprofd
This is the only place they are really used directly, so keep them there.
2023-07-18 16:13:01 -07:00
8a631d8f88 janitorial: remove unused files 2023-07-18 16:10:43 -07:00
44b2b9d31e sysprof: make some instruments active by default 2023-07-17 18:05:54 -07:00
e666c4a8b8 sysprof: allow toggling bundled symbols in greeter 2023-07-17 17:59:14 -07:00
59b6165816 libsysprof-analyze: do not symbolize fallback symbols
These just waste a bunch of space in the capture file and we can instead
generate them on the fly when loading the document.
2023-07-17 17:51:03 -07:00
4d92cf3424 libsysprof-profile: only bundle ELF symbols
The rest can be decoded already using content we have in our syscap.
2023-07-17 17:41:15 -07:00
2dbf6553b4 libsysprof-profile: add instrument to bundle symbols
This instrument does as our previous symbols_source did and will augment
the capture with additional symbols that improves the chances you'll get
proper symbolization on machines that did not create the capture.
2023-07-17 17:37:32 -07:00
dbabe87b3d libsysprof-analyze: add API to serialize symbol cache
This will allow us to put the symbol cache back in the __symbols__ file
like we did for online symbol resolution in previous versions.
2023-07-17 17:35:34 -07:00
8bb45686c6 build: bump dex requirement
We need various new API there.
2023-07-17 17:12:17 -07:00
a701b03b03 libsysprof-analyze: format header 2023-07-17 16:05:25 -07:00
29fd9e9cc0 sysprof-cli: port to libsysprof-profile 2023-07-17 15:35:47 -07:00
1fba250444 build: drop legacy v2 service and simplify build system
This removes -Dagent and just uses -Dtools as it only affects sysprof-cli
and sysprof-agent. We still need to patch sysprof-cli for recent changes
as we did for sysprof-agent though.

Additionally, we haven't used the v2 service in forever, so drop that as
I can't imagine anyone has been using it.
2023-07-17 15:11:10 -07:00
72be6491b6 sysprof: allow creation of process dialog from table 2023-07-17 14:55:07 -07:00
93900265f1 sysprof: improve incremental items-changed updates
This way we get updates as the series is processed.
2023-07-17 14:42:46 -07:00
f3e87eec2b sysprof: filter process table by selected range 2023-07-17 13:57:59 -07:00
b856763337 sysprof: allow scrubbing processes by their spawn time
This just makes it easier to look at what processes were spawned when.
2023-07-17 13:22:19 -07:00
3ce7ddd653 sysprof: remove unused label 2023-07-17 13:21:55 -07:00
1f7beb9505 sysprof: add listing of threads seen in a process
This is useful just so we can look at a table of what threads we
discovered (via sampling). We might also want to add a new Thread frame
that allows us to see that data from Perf. Especially once we start doing
scheduler information.
2023-07-17 13:15:43 -07:00
0cdf7d8e87 sysprof: add a process table in addition to chart 2023-07-17 12:50:19 -07:00
cdbf3508f6 libsysprof-analyze: include thread info in processes 2023-07-17 12:33:49 -07:00
05349f9759 libsysprof-analyze: add sysprof-thread-info.h header 2023-07-17 12:33:37 -07:00
68abadbdd8 libsysprof-analyze: ensure pid info structure for exit time 2023-07-17 12:26:09 -07:00
c1cfc1e210 libsysprof-analyze: add basic tracking of threads
It's nice to have a list of threads that are in a process and make that
available as a listmodel of the process. We can use this to show more
information in the UI at some point.
2023-07-17 12:25:59 -07:00
f8890fb040 libsysprof-capture: add rewrite-pid to capture tests 2023-07-17 12:24:44 -07:00
4a6a0f9948 tools: remove more tooling
These eventually all go away.
2023-07-17 12:24:33 -07:00
1913e27b61 sysprof-agent: move sysprof-agent to own directory
The tools directory will be going away and pieces moved around.
2023-07-17 11:40:26 -07:00
ee962d93cd libsysprof-profile: give access to GSubprocess
This is needed to be able to proxy exit/signal information via
sysprof-agent.
2023-07-17 11:39:35 -07:00