[Bug debugedit/33823] New: debugedit fails to detect sources if DWARF contains relative, not absolute paths (empty debugsourcefiles.list)
david.abdurachmanov at gmail dot com
sourceware-bugzilla@sourceware.org
Thu Jan 22 10:07:32 GMT 2026
https://sourceware.org/bugzilla/show_bug.cgi?id=33823
Bug ID: 33823
Summary: debugedit fails to detect sources if DWARF contains
relative, not absolute paths (empty
debugsourcefiles.list)
Product: debugedit
Version: unspecified
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: debugedit
Assignee: unassigned at sourceware dot org
Reporter: david.abdurachmanov at gmail dot com
CC: debugedit at sourceware dot org
Target Milestone: ---
This is a summary from Matrix discussion.
On Fedora/RISCV some of ours builds fail as debugsourcefiles.list is empty.
RPM build errors:
error: Empty %files file
/builddir/build/BUILD/catch-3.10.0-build/Catch2-3.10.0/debugsourcefiles.list
Empty %files file
/builddir/build/BUILD/catch-3.10.0-build/Catch2-3.10.0/debugsourcefiles.list
On riscv64 the file is completely empty, but that's not the case on x86_64 and
aarch64 (I didn't check all, but I expect the same). The file contains empty
directories, and the source package produces just ships empty directories.
$ rpm2cpio
./results_catch/3.10.0/3.fc44/catch-debugsource-3.10.0-3.fc44.x86_64.rpm | cpio
-utv
drwxr-xr-x 1 root root 0 Jan 16 01:00
./usr/src/debug/catch-3.10.0-3.fc44.x86_64
drwxr-xr-x 1 root root 0 Jan 16 01:00
./usr/src/debug/catch-3.10.0-3.fc44.x86_64/redhat-linux-build
drwxr-xr-x 1 root root 0 Jan 16 01:00
./usr/src/debug/catch-3.10.0-3.fc44.x86_64/redhat-linux-build/src
Looking at catch package and two shared libraries the DWARF contains relative
paths instead of absolute (I compared to tcl package).
<17> DW_AT_name : (indirect line string, offset: 0x1f5):
src/catch2/internal/catch_main.cpp
<1b> DW_AT_comp_dir : (indirect line string, offset: 0x2ba):
redhat-linux-build/src
<17> DW_AT_name : (indirect line string, offset: 0xb9):
src/catch2/benchmark/catch_chronometer.cpp
<859> DW_AT_name : (indirect line string, offset: 0x221):
src/catch2/benchmark/detail/catch_analyse.cpp
<bbee> DW_AT_name : (indirect line string, offset: 0x53c):
src/catch2/benchmark/detail/catch_benchmark_function.cpp
<d153> DW_AT_name : (indirect line string, offset: 0x593):
src/catch2/benchmark/detail/catch_run_for_at_least.cpp
<f8f0> DW_AT_name : (indirect line string, offset: 0x6dc):
src/catch2/benchmark/detail/catch_stats.cpp
<22fa7> DW_AT_name : (indirect line string, offset: 0x7ff):
src/catch2/generators/catch_generator_exception.cpp
<234f3> DW_AT_name : (indirect line string, offset: 0x8e9):
src/catch2/generators/catch_generators.cpp
<29ae3> DW_AT_name : (indirect line string, offset: 0x9a4):
src/catch2/generators/catch_generators_random.cpp
<3130c> DW_AT_name : (indirect line string, offset: 0xbb3):
src/catch2/reporters/catch_reporter_automake.cpp
<42b37> DW_AT_name : (indirect line string, offset: 0xc5b):
src/catch2/reporters/catch_reporter_common_base.cpp
<5638e> DW_AT_name : (indirect line string, offset: 0xd1c):
src/catch2/reporters/catch_reporter_compact.cpp
<70fb4> DW_AT_name : (indirect line string, offset: 0xd7a):
src/catch2/reporters/catch_reporter_console.cpp
[..]
The following works: debugedit -l a.list libCatch2.so.3.10.0
redhat-linux-build/src/redhat-linux-build/src/src/catch2/benchmark/catch_chronometer.cpp
redhat-linux-build/src/src/catch2/benchmark/catch_chronometer.cpp
redhat-linux-build/src/src/catch2/benchmark/catch_chronometer.cpp
/usr/include/c++/15/type_traits
/usr/include/c++/15/cstdint
/usr/include/c++/15/ctime
/usr/include/c++/15/bits/chrono.h
/usr/include/bits/types.h
/usr/include/bits/stdint-intn.h
/usr/include/bits/stdint-uintn.h
/usr/include/bits/stdint-least.h
/usr/include/stdint.h
/usr/include/bits/types/clock_t.h
/usr/include/bits/types/time_t.h
/usr/include/bits/types/struct_tm.h
/usr/include/bits/types/struct_timespec.h
/usr/include/time.h
/usr/include/c++/15/riscv64-redhat-linux/bits/c++config.h
redhat-linux-build/src/src/catch2/benchmark/catch_clock.hpp
redhat-linux-build/src/src/catch2/benchmark/catch_optimizer.hpp
[..]
What seems to cause the problem is these flags for debugedit:
-b /home/fedora/rpmbuild/BUILD/catch-3.10.0-build/Catch2-3.10.0 -d
/usr/src/debug/catch-3.10.0-1.fc43.riscv64
Other potentially affected packages:
error: Empty %files file
/builddir/build/BUILD/opensurge-0.6.1.2-build/opensurge-0.6.1.2/debugsourcefiles.list
error: Empty %files file
/builddir/build/BUILD/pgadmin4-9.3-build/pgadmin4-9.3/debugsourcefiles.list
error: Empty %files file
/builddir/build/BUILD/toolbox-0.3-build/toolbox-0.3/debugsourcefiles.list
This is not the final list, a quick scan of some build logs.
My theory is that debugedit doesn't handle relative paths in DWARF.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Debugedit
mailing list