Commit Graph

3549 Commits

Author SHA1 Message Date
ecdcfb83d0 sysprof: add toggles to categorize frames 2023-07-20 12:30:11 -07:00
ae7201c9ff libsysprof: use callgraph node to categorize for icons 2023-07-20 12:20:25 -07:00
92d2cedb8d libsysprof: add API to categorize callgraph
This just gets the plumbing in place with some basic categorization for
callgraph information. The real work of categorizing by nick/symbol still
needs to be done (some can be copied from SysprofCategoryIcon).

This also adds a property and getter for SysprofCallgraphFrame which will
expose the node's category to the UI code.
2023-07-20 11:32:44 -07:00
5afb315be5 libsysprof: fix flags get type generation 2023-07-20 11:24:04 -07:00
c3918bc261 sysprof: more GTK categorization 2023-07-19 22:48:37 -07:00
ec4f2f2870 sysprof: add input category 2023-07-19 22:48:31 -07:00
adc34117f9 sysprof: give windowing category a color 2023-07-19 22:41:08 -07:00
34deb22eda sysprof: start on symbol categorization
This will end up getting moved a bit to CallgraphNode so that we can
look at the parents, but for now just do this so I can test things out
a bit and see how we like it.

Eventually, the goal would be to categorize the callgraph and show that
information in the sidebar for quick overviews of where time is spent.

It's a bit laborious to keep up and add symbols for this sort of stuff,
but I think the "at a glance" value is pretty huge.
2023-07-19 22:38:23 -07:00
dece7e041a sysprof: use tooltip-text helper 2023-07-19 22:36:58 -07:00
7f7afe9559 libsysprof: add a tooltip-text helper 2023-07-19 22:35:25 -07:00
de15129786 libsysprof: add more elf groupings 2023-07-19 22:35:12 -07:00
135e1019b2 sysprof: add ctrl+f9 for right sidebar 2023-07-19 20:44:21 -07:00
3845e0c00e sysprof: reduce expiry check to once every 10 iterations 2023-07-19 20:36:35 -07:00
c55d1887ba libsysprof: include lsusb information 2023-07-19 19:07:12 -07:00
d04e5c5678 libsysprof: silence stderr 2023-07-19 19:07:05 -07:00
5a68b167c3 sysprof: sort path column by default 2023-07-19 18:35:40 -07:00
118484607d libsysprof: compress various process information 2023-07-19 18:33:00 -07:00
4d37230917 libsysprof: don't try to compress 0 length file content 2023-07-19 18:32:45 -07:00
3b2e9edeb9 libsysprof: record some system info from linux instrument
We might want a secondary instrument for this eventually, but for now we'll
just attach it in the Linux instrument.

This takes the output of eglinfo and glxinfo and adds it as a file in the
capture syscap. Compressed of course to keep the size smaller.
2023-07-19 18:30:24 -07:00
90ed413c5a libsysprof: add API to add compressed file from data 2023-07-19 18:29:38 -07:00
233685d5ad sysprof: allow setting the file to open in greeter
Still need controls to actually do the opening/etc, but this is a start.
2023-07-19 17:59:44 -07:00
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