GDB 7.7 crashes on LTO-built executable

Eli Zaretskii eliz@gnu.org
Sat Feb 15 16:58:00 GMT 2014


> Date: Wed, 12 Feb 2014 22:11:19 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: gdb-patches@sourceware.org
> 
> Yes, the DWARF 2 debuginfo _is_ recorded, but for a file name that has
> nothing to do with the name of the source file from which the program
> was compiled.

This happens in read_file_scope, which is called from process_die.
read_file_scope calls find_file_and_directory, which uses DW_AT_name
attribute to get the file name.  And that file name turns out to be
$TMPDIR/ccN8FPgQ.ltrans0.o instead of the expected foo.c, which is the
source file I compiled.  So the DWARF 2 debug info is set for that
temporary file name, instead of the source file.

The call to process_die happens as part of set_initial_language, which
looks for a symbol "main".

The name of the source file is available in the psymtab that is
accessible from the die (via the objfile struct).  the question is
what should be the conditions under which we need to look there.
E.g., can the fact that DW_AT_name returns a name of an object file be
that condition?



More information about the Gdb-patches mailing list