On Wed, 23 Jan 2008 23:03:15 -0800 (PST)
Roland McGrath <roland(a)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.
-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