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