[lldb] [llvm] Add support for using foreign type units in .debug_names. (PR #87740)

Alexander Yermolovich via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 16 15:36:51 PDT 2024


ayermolo wrote:

@clayborg 
Figured I reply here to your comment:
https://github.com/llvm/llvm-project/pull/88092#issuecomment-2059961175
This was regarding merging .debug_names in linker (although types are not implemented yet there), but FYI BOLT output is similar.
All the CUs are in one module.
Entry for type unit will have two indexes.
One for CU to which it belongs and another for type unit. Which can either be local or foreign.
example:
```
  Compilation Unit offsets [
    CU[0]: 0x00000000
    CU[1]: 0x00000029
  ]
  Foreign Type Unit signatures [
    ForeignTU[0]: 0x49dc260088be7e56
    ForeignTU[1]: 0x104ec427d2ebea6f
    ForeignTU[2]: 0xca1e65a66d92b970
    ForeignTU[3]: 0x104ec427d2ebea6f
  ]
  
  ...
  Bucket 1 [
    Name 1 {
      Hash: 0x7C96E4DB
      String: 0x00000027 "Foo2"
      Entry @ 0x117 {
        Abbrev: 0x1
        Tag: DW_TAG_structure_type
        DW_IDX_type_unit: 0x00
        DW_IDX_compile_unit: 0x00
        DW_IDX_die_offset: 0x00000021
        DW_IDX_parent: <parent not indexed>
      }
    }
```




https://github.com/llvm/llvm-project/pull/87740


More information about the llvm-commits mailing list