When we share custom built kernel, It is common to give without debug info.

Similar to sudo apt-get install linux-image-$(uname -r)-dbgsym, I would like to create separate debug info file for custom built kernel.

Here and here they explained generally. I request to share knowledge on creating separate debug info file for entire linux kernel.

For sample program

$ gcc -g calc.c

$ ls -l
 total 16
-rwxrwxr-x 1 jeyaram jeyaram 8424 Apr  8 09:44 a.out
-rw-rw-r-- 1 jeyaram jeyaram  246 Apr  8 09:32 calc.c

$ objcopy --only-keep-debug a.out a.debug
$ gcc calc.c -------------> compiling without debug info (skipped 'strip')
$ ls -l
total 20
-rwxrwxr-x 1 jeyaram jeyaram 4736 Apr  8 09:45 a.debug
-rwxrwxr-x 1 jeyaram jeyaram 7200 Apr  8 09:52 a.out
-rw-rw-r-- 1 jeyaram jeyaram  246 Apr  8 09:32 calc.c

$ objcopy --add-gnu-debuglink=a.debug a.out
$ gdb a.out
GNU gdb (Ubuntu/Linaro 7.4-2012.02-0ubuntu2) 7.4-2012.02
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /home/jeyaram/JJJ/debug_info_analysis/sample_c_test/a.out...Reading symbols from /home/jeyaram/JJJ/debug_info_analysis/sample_c_test/a.debug...done.
done.

But while trying with vmlinux

$ objcopy --only-keep-debug vmlinux vmlinux.debug
objcopy: Unable to recognise the format of the input file `vmlinux'

Missing something ???

有帮助吗?

解决方案

vmlinux is a binary blob. The file you're looking for is vmlinux.bin (which is the elf intermediate).

Works like charm:

objcopy --only-keep-debug vmlinux.bin vmlinux.debug

其他提示

arm-linux-gnueabi-objcopy --only-keep-debug vmlinux vmlinux.debug will works fine.

$ ls -l vmlinux*
-rwxrwxr-x 1 jeyaram jeyaram   7871108 Apr  8 11:24 vmlinux
-rwxrwxr-x 1 jeyaram jeyaram  92520922 Apr  8 11:21 vmlinux.debug
-rw-rw-r-- 1 jeyaram jeyaram 162974220 Apr  7 14:16 vmlinux.o
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top