In a failed attempt to allow the gnu-public-names.ll test case to not
hardcode the size of the unit that the pubnames section referred to I've
at least managed to have unit headers and pubnames headers print out in
a similar style.
This failed to achieve the desired goal because the header in a unit
specifies the length of the unit without the length element of the
header whereas the length in the pubnames includes this element, so the
numbers are off by 4 bytes. I don't know of any arithmetic powers in
FileCheck so the test case can't simply say "CU_LENGTH + 4".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193872
91177308-0d34-0410-b5e6-
96231b3b80d8
OS << "\n." << Name << " contents:\n";
DataExtractor pubNames(Data, LittleEndian, 0);
uint32_t offset = 0;
- OS << "Length: " << pubNames.getU32(&offset) << "\n";
- OS << "Version: " << pubNames.getU16(&offset) << "\n";
- OS << "Offset in .debug_info: " << pubNames.getU32(&offset) << "\n";
- OS << "Size: " << pubNames.getU32(&offset) << "\n";
+ OS << "length = " << format("0x%08x", pubNames.getU32(&offset));
+ OS << " version = " << format("0x%04x", pubNames.getU16(&offset));
+ OS << " unit_offset = " << format("0x%08x", pubNames.getU32(&offset));
+ OS << " unit_size = " << format("0x%08x", pubNames.getU32(&offset)) << '\n';
if (GnuStyle)
OS << "Offset Linkage Kind Name\n";
else
; CHECK-NEXT: DW_AT_name {{.*}} "global_function"
; CHECK-LABEL: .debug_gnu_pubnames contents:
-; CHECK-NEXT: Length: 231
-; CHECK-NEXT: Version: 2
-; CHECK-NEXT: Offset in .debug_info: 0
-; CHECK-NEXT: Size: 379
+; CHECK-NEXT: length = 0x000000e7 version = 0x0002 unit_offset = 0x00000000 unit_size = 0x0000017b
; CHECK-NEXT: Offset Linkage Kind Name
; CHECK-DAG: [[GLOBAL_FUNC]] EXTERNAL FUNCTION "global_function"
; CHECK-DAG: [[NS]] EXTERNAL TYPE "ns"
; CHECK-LABEL: debug_gnu_pubtypes contents:
-; CHECK-NEXT: Length:
-; CHECK-NEXT: Version:
-; CHECK-NEXT: Offset in .debug_info:
-; CHECK-NEXT: Size:
-; CHECK-NEXT: Offset Linkage Kind Name
+; CHECK: Offset Linkage Kind Name
; CHECK-DAG: [[C]] EXTERNAL TYPE "C"
; CHECK-DAG: [[D]] EXTERNAL TYPE "ns::D"
; CHECK-DAG: [[INT]] STATIC TYPE "int"
; Skip the output to the header of the pubnames section.
; CHECK: debug_pubnames
-; CHECK: Version: 2
+; CHECK: version = 0x0002
; Check for each name in the output.
; CHECK: global_namespace_variable
RUN: -debug-dump=pubnames | FileCheck %s
CHECK: .debug_pubnames contents:
-CHECK: Length: 161
-CHECK: Version: 2
-CHECK: Offset in .debug_info: 0
-CHECK: Size: 321
+CHECK: length = 0x000000a1 version = 0x0002 unit_offset = 0x00000000 unit_size = 0x00000141
CHECK: Offset Name
CHECK: 0x00000098 "global_namespace_variable"