| RUN: llvm-dwarfdump -gdb-index %p/Inputs/dwarfdump-gdbindex-v8.elf-x86-64 | FileCheck %s |
| |
| ; main.cpp: |
| ; typedef struct |
| ; { |
| ; unsigned a; |
| ; unsigned b; |
| ; } S; |
| ; |
| ; int main() { |
| ; S s; |
| ; s.a = 0x64A40101; |
| ; } |
| ; helper.cpp: |
| ; typedef struct |
| ; { |
| ; unsigned a; |
| ; unsigned b; |
| ; } S2; |
| ; |
| ; int foo() { |
| ; S2 s; |
| ; s.a = 0x64A40101; |
| ; } |
| ; Compiled with: |
| ; clang++ -ggnu-pubnames -g2 -gdwarf-4 -fdebug-types-section -c test.cpp test2.cpp |
| ; ld.lld main.o helper.o -o dwarfdump-gdbindex-v8.elf-x86-64 |
| ; gdb-11/bin/gdb-add-index dwarfdump-gdbindex-v8.elf-x86-64 |
| ; clang version 17.0.0 (https://github.com/llvm/llvm-project.git 128b050d3c234c7238966349f8878884123a0030) |
| ; GNU gdb (GDB) 11.2 |
| ; Info about gdb-index: https://sourceware.org/gdb/onlinedocs/gdb/Index-Section-Format.html |
| |
| ; CHECK-LABEL: .gdb_index contents: |
| ; CHECK: Version = 8 |
| |
| ; CHECK: CU list offset = 0x18, has 2 entries: |
| ; CHECK-NEXT: 0: Offset = 0x0, Length = 0x6e |
| ; CHECK-NEXT: 1: Offset = 0x6e, Length = 0x72 |
| |
| ; CHECK: Types CU list offset = 0x38, has 2 entries: |
| ; CHECK-NEXT: 0: offset = 0x00000000, type_offset = 0x0000001e, type_signature = 0x418503b8111e9a7b |
| ; CHECK-NEXT; 1: offset = 0x00000044, type_offset = 0x0000001e, type_signature = 0x00f6cca4e3a15118 |
| |
| ; CHECK: Address area offset = 0x68, has 2 entries: |
| ; CHECK-NEXT: Low/High address = [0x201180, 0x20118f) (Size: 0xf), CU id = 0 |
| ; CHECK-NEXT: Low/High address = [0x201190, 0x20119d) (Size: 0xd), CU id = 1 |
| |
| ; CHECK: Symbol table offset = 0x90, size = 1024, filled slots: |
| ; CHECK-NEXT: 2: Name offset = 0x28, CU vector offset = 0x0 |
| ; CHECK-NEXT: String name: S, CU vector index: 0 |
| ; CHECK-NEXT: 71: Name offset = 0x2a, CU vector offset = 0x8 |
| ; CHECK-NEXT: String name: S2, CU vector index: 1 |
| ; CHECK-NEXT: 489: Name offset = 0x2d, CU vector offset = 0x10 |
| ; CHECK-NEXT: String name: main, CU vector index: 2 |
| ; CHECK-NEXT: 661: Name offset = 0x32, CU vector offset = 0x18 |
| ; CHECK-NEXT: String name: foo, CU vector index: 3 |
| ; CHECK-NEXT: 732: Name offset = 0x36, CU vector offset = 0x20 |
| ; CHECK-NEXT: String name: unsigned int, CU vector index: 4 |
| ; CHECK-NEXT: 754: Name offset = 0x43, CU vector offset = 0x0 |
| ; CHECK-NEXT: String name: int, CU vector index: 0 |
| |
| |
| ; CHECK: Constant pool offset = 0x2090, has 5 CU vectors: |
| ; CHECK-NEXT: 0(0x0): 0x90000000 |
| ; CHECK-NEXT: 1(0x8): 0x90000001 |
| ; CHECK-NEXT: 2(0x10): 0x30000000 |
| ; CHECK-NEXT: 3(0x18): 0x30000001 |
| ; CHECK-NEXT: 4(0x20): 0x90000002 |