Am 05.07.2013 22:23, schrieb Michael Ring: > I have now found out why debug symbols get discarded by > pic32mx-elf32-gdb. The problem is a bug in the generation of > dwarf-debuginfo. My guess is that the problem should also exist in linux > target. > > For mips unaligned data in dward debug info needs to be defined as > .4byte and .2byte instead of .long and .short. > > This is implemented in most places but it seems not everywhere. > > When I compile this program: > > program hello; > var > i : integer; > begin > end. > > the symbol I has one entry with .long, the resulting binary does not > load in gdb with the error-message: Dwarf Error: wrong version in > compilation unit header (is 10752, should be 2, 3, or 4) > > # Syms - Begin Staticsymtable > # Symbol SYSTEM > # Symbol OBJPAS > # Symbol PIC32MX2XXFXXXC > # Symbol HELLO > # Symbol main > # Symbol I > .uleb128 2 > .ascii "I\000" > .byte 5 > .byte 3 > .long U_$P$HELLO_$$_I > .4byte _$HELLO$_Ld1 > # Syms - End Staticsymtable > > when I replace the '.long' with '.4byte' and recompile then the > resulting hello.elf loads fine into gdb. I could see before with readelf > that the dwarf info was misaligned compared to the dwarf imfo when I > compile the same code for arm-embedded > > Can anybody help with a fix?
Do I understand it correctly, that it is sufficient so replace .long by .4byte and .short by .2byte at all locations? Does it apply to all targets? _______________________________________________ fpc-devel maillist - [email protected] http://lists.freepascal.org/mailman/listinfo/fpc-devel
