separate debugging symbols

All about the OSDev Wiki. Discussions about the organization and general structure of articles and how to use the wiki. Request changes here if you don't know how to use the wiki.
Post Reply
htamas
Posts: 1
Joined: Sun Oct 22, 2006 4:51 pm

separate debugging symbols

Post 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.
Post Reply