DWARF5 and .gdb_index/.debug_names

Mark Wielaard mark@klomp.org
Sun Aug 30 17:18:51 GMT 2020


Hi,

Last week we had a DWARF BoF at the virtual GNU tools cauldron.
Notes have been posted to the gcc wiki:
https://gcc.gnu.org/wiki/LPC2020NotesDWARF

I would like to try to make DWARF5 the default for GCC11 and have been
trying to fix any issues I could find. Testing gdb went pretty well.
There is one issue that I originally filed against gdb:
https://sourceware.org/bugzilla/show_bug.cgi?id=26525
But that is most likely a bug in gcc. Jakub has a patch that fixes the
issue for gcc, but there is some debate whether that is the correct
approach or not:
https://gcc.gnu.org/pipermail/gcc-patches/2020-August/552535.html

Note that I haven't really looked for issues in languages other than C
or C++, so someone might want to double check whether other languages
supported by gcc are also ready to switch to DWARF5 by default.

During the BoF Pedro mentioned that the GDB DWARF5 .debug_names support
is incomplete/wrong. I was wondering whether there was a good
description of the issue and/or a bug report for it. When using the
contrib/gdb-add-index.sh it does add a .gdb_index for objects
containing DWARF5 and the results seem correct, gdb also seems to be
able to use it. When adding -dwarf-5 it seems to output a .debug_names
section which can be read by binutils readelf (elfutils doesn't yet
support .debug_names). I couldn't immediately see in what way it was
wrong/incomplete.

dwz does support .gdb_index rewriting, but doesn't know about
.debug_names yet. So could we as a first step, when switching the
DWARF5 keep using .gdb_index? At least till any issues with gdb
.debug_names are resolved and dwz supports it?

Thanks,

Mark


More information about the Gdb mailing list