[clang] [llvm] [clang][DebugInfo] Add symbol for debugger with VTable information. (PR #130255)

Carlos Alberto Enciso via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 27 01:12:57 PDT 2025


CarlosAlbertoEnciso wrote:

@dwblaikie:

> Not sure why it'd be necessary to make that vtable global variable "global" rather than static within the class? Is that for debug_names lookup? (I think static members are still in the index, right?) If it's a class member you can still do bidirectional lookup, right? IF you find the variable, you can find its parent to see which class it applies to, and if you have the class you can find the vtable variable inside it?

```
0x0000004c:   DW_TAG_structure_type ("CDerived")
                ...
0x0000005c:     DW_TAG_variable
                  DW_AT_name  ("_vtable$")
                  DW_AT_type  (0x00000041 "void *")
                  DW_AT_external  (true)
                  DW_AT_artificial  (true)
                  DW_AT_accessibility  (DW_ACCESS_private)
                  DW_AT_location  (DW_OP_addrx 0x1)
              ...

.debug_addr contents:
Addrs: [
0x0000000000000000
0x0000000000000000  <- DW_OP_addrx 0x1
0x0000000000000000
]
```
Removing the vtable global variable and moving the "location info" into the static within the class, will work for the SCE debugger.

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


More information about the llvm-commits mailing list