On Wed, 23 Jan 2008 23:03:15 -0800 (PST) Roland McGrath roland@redhat.com wrote:
It is probably a better solution not to have a vmlinux.debug but instead keep the simple cp, and avoid the vmlinu[xz].debug files by explicitly stripping the /boot copy of vmlinux.
I wish you wouldn't. If it's stripped, there's no way that I know of other than using gdb to get an assembly dump with the function information, etc. As it stands today, you can use objdump -rd on the unstripped vmlinu* file and it will nicely spit out an assembly listing.
You seem to have inverted the sense of what I suggested. /boot/vmlinuz-blah is stripped no matter what, it already is now. "Explicitly stripping" it as I said above means discarding the separate debug file now being created. Then the only plan is to get the whole unstripped file from /usr/lib/debug/lib/modules/.../vmlinux, as you do now.
The alternative to what you quoted is what I posted the spec patch for, which changes things so there is no whole unstripped vmlinux file around (for ppc). That is the change you are concerned about, so what you favor is the solution you quoted above.
But FYI:
-r does nothing useful on vmlinux, which is not a relocatable file. -d works on the contents that are in a stripped file, and does not need symbols or debuginfo to print instructions. If you want symbols in its output, or something from the vmlinux DWARF info (like for -S), you can use:
eu-unstrip -o vmlinux.unstrip -k kernel or eu-unstrip -o vmlinux.unstrip -e /boot/vmlinux-blah
objdump -dS vmlinux.unstrip
Thanks, Roland