A shared object was built on RedHat Linux and while all the code was compiled with debug, the debugger (gdb) refused to load the symbols and issued an error as in:
...
GNU gdb Fedora (6.8-37.el5)
...
This GDB was configured as "x86_64-redhat-linux-gnu"...
Dwarf Error: wrong version in compilation unit header (is 4, should be 2) [in module libgrokf.so]
With this error, I could not get break points to trigger in any function nor see proper stack trace. I recompiled the entire project but nothing helped. I do know that some time in the past there was no problem in debugging that module.
What is causing this problem?
The problem is that your version of gdb
doesn't support the DWARF
version used in one of your binaries.
The solution: Update gdb
or compile your files using another debug format (DWARF2
works on gdb
6).
I have recently had this problem with freeBSD
and nasm
, nasm
compiling binaries with DWARF3
and the gdb
that ships with freeBSD 9.1
doesn't accept it.
I hope this answer helps anyone having a similar problem :P