Sunday, January 21, 2018

debugging - Profiling stock Ubuntu kernel with sysprof: how?


There are various system-wide debug tools (sysprof, oprofile, systemtap) that need debug symbols. Getting debug symbols for userspace applications is easy: https://wiki.ubuntu.com/DebuggingProgramCrash


The ddebs repository also contains linux-image-$(uname -r)-dbgsym packages, but even if I install it, sysprof continues to show me unhelpful "in kernel" without detailed information. Where can I get debug symbols that sysprof can use?


The systemtap package has a Suggests: linux-debug-2.6. Apt-cache search fails to find anything called linux-debug-2.6. Is it available somewhere? Or is this an unproductive dead-end?


Incidentally, oprofile can use the debug symbols from the above-mentioned dbgsym package, but not out of the box -- it wants
/lib/modules/$(uname -r)/build/vmlinux, and I have to tell it to use use /usr/lib/debug/boot/vmlinux-$(uname -r)-generic. But oprofile lacks a nice GUI, so I'd prefer sysprof.


So, how can I convince sysprof to show me what's happening in the kernel?



As far as I can tell, I was mistaken and sysprof doesn't actually provide any level of detail beyond "in kernel". Here's sysprof-1.0.12/process.c, lines 350 through 355:


    if (address == 0x1)
{
kernel.name = "in kernel";
kernel.address = 0x0001337;
return &kernel;
}

No comments:

Post a Comment

11.10 - Can't boot from USB after installing Ubuntu

I bought a Samsung series 5 notebook and a very strange thing happened: I installed Ubuntu 11.10 from a usb pen drive but when I restarted (...