Compiling some basic code (obviously bad to check debuggability) with dwarf debug symbols for Linux produces a binary that readelf (from binutils) isn't quite happy with.
/* test.c */
#include <stdio.h>
int main (void) {
unsigned char c = 0;
do {
printf ("c: %hhu\n", c);
c += 1;
if (c == 42) {
*(unsigned long int*)(c) = 0xdeadbeef;
}
} while (c != 0);
return 0;
}
$ wcl386 -hd -d2 -fe=owv2_dwarf test.c
# ...
$ readelf --debug-dump=info owv2_dwarf 2>&1 | grep 'readelf:'
readelf: Error: .debug_abbrev section not zero terminated
readelf: Warning: Bogus end-of-siblings marker detected at offset 13a in .debug_info section
(commit 996740acdbb173499ec1bf2ba6c8942f2a374220)
Compiling some basic code (obviously bad to check debuggability) with dwarf debug symbols for Linux produces a binary that
readelf
(frombinutils
) isn't quite happy with.