Page 1 of 1

separate debugging symbols

Posted: Sun Oct 22, 2006 5:28 pm
by htamas
On the "How do I use a debugger with my OS" page, in the "Use gdb with Qemu" section, there is:
But thats not all, you can compile your source code under gcc with debuging symbols using "-g". This will add all the debuging symbols in the kernel image itself (Thus making it bigger ). I think there is a way to make this symbol file seperate, if so, please let me know.
While I haven't worked in kernel space yet, I know how to do this in userland (and it's probably the same):

Compile the program in two steps. When creating the object file, add debugging information. When linking, keep it in the debug version and remove it from the standard one:

Code: Select all

gcc -g -c program.c -o program.o
gcc program.o -o program.dbg
gcc program.o -s -o program
If you want, you can remove the code from program.dbg, only keeping the debugging information (this is not necessary):

Code: Select all

strip program.dbg --only-keep-debug
If you prefer compiling in one step, you may do the following instead:

Code: Select all

gcc -g program.c -o program
strip program --only-keep-debug -o program.dbg
strip program
On to starting gdb. If you would like to use the symbol file from the beginning, you could use:

Code: Select all

gdb --exec program --symbols program.dbg
If you want to load it later or manually, start "gdb program" and at the (gdb) prompt, type

Code: Select all

add-symbol-file program.dbg
Hope that helps.