[Bug debug/93865] New: .debug_line with LTO refers to bogus file-names
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Feb 21 07:55:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93865
Bug ID: 93865
Summary: .debug_line with LTO refers to bogus file-names
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: debug
Assignee: unassigned at gcc dot gnu.org
Reporter: rguenth at gcc dot gnu.org
Target Milestone: ---
Consider
.../t.c
.../tmp/t.c
.../a/
within the respective directories containing t.c do
gcc -c t.c -g -flto
then inside a/ do
gcc ../t.o ../tmp/t.o -g -flto
when you inspect a.out you'll see
<0><d2>: Abbrev Number: 1 (DW_TAG_compile_unit)
<d3> DW_AT_producer : (indirect string, offset: 0x1e4): GNU
GIMPLE 9.2.0 -mtune=generic -march=x86-64 -g -fno-openmp -fno-openacc
-fno-pie -fltrans
<d7> DW_AT_language : 12 (ANSI C99)
<d8> DW_AT_name : (indirect string, offset: 0x1d0):
<artificial>
<dc> DW_AT_comp_dir : (indirect string, offset: 0x1dd): /tmp/a
...
<f0> DW_AT_stmt_list : 0xe9
Offset: 0xe9
...
The Directory Table is empty.
The File Name Table (offset 0x105):
Entry Dir Time Size Name
1 0 0 0 t.c
so .debug_line lost the fact that we have two distinct t.c files and the
debugger has no way of actually finding it since we point it at /tmp/a
More information about the Gcc-bugs
mailing list