1 RUN: llvm-dwarfdump -v %p/Inputs/dwarfdump-dwp.x86_64.o | FileCheck %s 2 3 ; Testing the following simple dwp file: 4 ; a.cpp: 5 ; struct foo { }; 6 ; foo a; 7 ; b.cpp: 8 ; struct bar { }; 9 ; bar b() { 10 ; } 11 12 ; CHECK-NOT: .debug_info contents: 13 ; CHECK-LABEL: .debug_info.dwo contents: 14 ; CHECK: Compile Unit 15 16 ; Verify that the second CU uses the index for its abbrev offset 17 ; CHECK: Compile Unit 18 ; CHECK-SAME: abbr_offset = 0x0043 19 ; CHECK: DW_TAG_compile_unit 20 ; CHECK-NOT: DW_TAG 21 ; CHECK: DW_AT_name {{.*}} "b.cpp" 22 23 ; Verify that abbreviations are decoded using the abbrev offset in the index 24 ; CHECK: DW_TAG_structure_type 25 ; CHECK: DW_TAG_subprogram 26 27 ; CHECK-LABEL: .debug_types.dwo contents: 28 ; CHECK: Type Unit 29 ; CHECK: DW_TAG_type_unit 30 ; CHECK: DW_AT_stmt_list {{.*}}(0x00000000) 31 ; CHECK: DW_TAG_structure_type 32 ; CHECK: DW_AT_decl_file {{.*}} ("a.cpp") 33 ; CHECK: Type Unit 34 ; CHECK: DW_TAG_type_unit 35 ; CHECK: DW_AT_stmt_list {{.*}}(0x00000000) 36 ; CHECK: DW_TAG_structure_type 37 ; CHECK: DW_AT_decl_file {{.*}} ("b.cpp") 38 39 ; CHECK: .debug_cu_index contents: 40 ; CHECK-NEXT: version = 2 slots = 16 41 ; CHECK: Index Signature INFO ABBREV LINE STR_OFFSETS 42 ; CHECK-NEXT: ----- ------------------ ------------------------ ------------------------ ------------------------ ------------------------ 43 ; CHECK-NEXT: 3 0xfef104c25502f092 [0x0000002d, 0x0000005f) [0x00000043, 0x0000008e) [0x0000001a, 0x00000034) [0x00000010, 0x00000024) 44 ; CHECK-NEXT: 9 0x03c30756e2d45008 [0x00000000, 0x0000002d) [0x00000000, 0x00000043) [0x00000000, 0x0000001a) [0x00000000, 0x00000010) 45 46 ; CHECK: .debug_tu_index contents: 47 ; CHECK-NEXT: version = 2 slots = 16 48 ; CHECK: Index Signature TYPES ABBREV LINE STR_OFFSETS 49 ; CHECK-NEXT: ----- ------------------ ------------------------ ------------------------ ------------------------ ------------------------ 50 ; CHECK-NEXT: 9 0x1d02f3be30cc5688 [0x00000024, 0x00000048) [0x00000043, 0x0000008e) [0x0000001a, 0x00000034) [0x00000010, 0x00000024) 51 ; CHECK-NEXT: 13 0x3875c0e21cda63fc [0x00000000, 0x00000024) [0x00000000, 0x00000043) [0x00000000, 0x0000001a) [0x00000000, 0x00000010) 52 53 ; TODO: use the index section offset info to correctly dump strings in debug info 54 ; TODO: use the index section offset info to correctly dump file names in debug info 55