OSDev.org
https://forum.osdev.org/

separate debugging symbols
https://forum.osdev.org/viewtopic.php?f=8&t=12074
Page 1 of 1

Author:  htamas [ Sun Oct 22, 2006 5:28 pm ]
Post subject:  separate debugging symbols

On the "How do I use a debugger with my OS" page, in the "Use gdb with Qemu" section, there is:
Quote:
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:
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:
strip program.dbg --only-keep-debug

If you prefer compiling in one step, you may do the following instead:
Code:
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:
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:
add-symbol-file program.dbg


Hope that helps.

Page 1 of 1 All times are UTC - 6 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/