https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99490
--- Comment #10 from Jan Kratochvil <jan.kratochvil at redhat dot com> --- clang is using DW_AT_ranges+DW_FORM_rnglistx+DW_AT_rnglists_base in the main file but in the DWO file it assumes DW_AT_rnglists_base is right after the .debug_rnglists header (as it does not make sense to point it anywhere else in a DWO file having single CU). It makes sense although I do not see it specified in DWARF-5: .debug_info contents: ... 0x00000014: DW_TAG_skeleton_unit [1] ... DW_AT_ranges [DW_FORM_rnglistx] (indexed (0x0) rangelist = 0x00000010 [0x0000000000401110, 0x0000000000401111) [0x0000000000401120, 0x0000000000401121) [0x0000000000401130, 0x0000000000401171)) ... DW_AT_rnglists_base [DW_FORM_sec_offset] (0x0000000c) .debug_info.dwo contents: ... 0x00000014: DW_TAG_compile_unit [1] * ... DW_AT_ranges [DW_FORM_rnglistx] (indexed (0x0) rangelist = 0x00000010 [0x0000000000000004, 0x0000000000000016) [0x0000000000000022, 0x0000000000000034)) https://github.com/llvm/llvm-project/blob/523d7bc6f427f9ae32e54dbf1764826cfb269d21/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp#L388