mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2025-12-31 20:36:25 +00:00
sysprofd: add support for unwinding without frame pointers
This provides a new sysprof-live-unwinder subprocess that runs as root to allow accessing all processes on the system via /proc/$pid/. It is spawned by sysprofd with various perf event FDs and a FD to write captures to. Ideally the capture_fd is something that will naturally error if the client application crashes (such as a socketpair() having the peer close). This is not enforced but encouraged. Additionally, an event_fd is used to allow the client application to signal the live-unwinder to exit. Unwinding is performed by looking at the modules loaded into the target pid and using libdwfl to access DWARF/CFI/etc state machinery. Stack data does not touch the disk as it exists in a mmap buffer from perf and is then translated into a callchain and sent to the Sysprof client. Unwinding occurs as normal post-mortem though is improved through the use of debuginfod to locate the appropriate symbols.
This commit is contained in:
@ -39,12 +39,13 @@ need_glib = (need_gtk or
|
||||
get_option('tools') or
|
||||
get_option('tests'))
|
||||
need_libsysprof = (need_gtk or
|
||||
get_option('sysprofd') == 'bundled' or
|
||||
get_option('libsysprof') or
|
||||
get_option('examples') or
|
||||
get_option('tools') or
|
||||
get_option('tests'))
|
||||
|
||||
dex_req = '0.6'
|
||||
dex_req = '0.9'
|
||||
glib_req = '2.76.0'
|
||||
gtk_req = '4.15'
|
||||
polkit_req = '0.105'
|
||||
|
||||
Reference in New Issue
Block a user