forked from OSchip/llvm-project
[CodeView] Dump BuildInfoSym and ProcSym type indices
I need to print the type index in hex so that I can match it in FileCheck for a test I'm writing. llvm-svn: 308107
This commit is contained in:
parent
06d823b92d
commit
af88a910fd
|
@ -56,7 +56,7 @@ CHECK: flags = has async eh | opt speed
|
||||||
CHECK: 196 | S_END [size = 4]
|
CHECK: 196 | S_END [size = 4]
|
||||||
CHECK: 200 | S_GDATA32 [size = 24] `global`
|
CHECK: 200 | S_GDATA32 [size = 24] `global`
|
||||||
CHECK: type = 0x0074 (int), addr = 0000:0000
|
CHECK: type = 0x0074 (int), addr = 0000:0000
|
||||||
CHECK: 224 | S_BUILDINFO [size = 8] BuildId = `4106`
|
CHECK: 224 | S_BUILDINFO [size = 8] BuildId = `0x100A`
|
||||||
CHECK: 232 | S_GPROC32_ID [size = 44] `foo`
|
CHECK: 232 | S_GPROC32_ID [size = 44] `foo`
|
||||||
CHECK: parent = 0, end = 308, addr = 0002:0032, code size = 15
|
CHECK: parent = 0, end = 308, addr = 0002:0032, code size = 15
|
||||||
CHECK: debug start = 0, debug end = 14, flags = none
|
CHECK: debug start = 0, debug end = 14, flags = none
|
||||||
|
@ -81,7 +81,7 @@ CHECK: flags = has async eh | opt speed
|
||||||
CHECK: 196 | S_END [size = 4]
|
CHECK: 196 | S_END [size = 4]
|
||||||
CHECK: 200 | S_GDATA32 [size = 24] `global`
|
CHECK: 200 | S_GDATA32 [size = 24] `global`
|
||||||
CHECK: type = 0x0074 (int), addr = 0000:0000
|
CHECK: type = 0x0074 (int), addr = 0000:0000
|
||||||
CHECK: 224 | S_BUILDINFO [size = 8] BuildId = `4109`
|
CHECK: 224 | S_BUILDINFO [size = 8] BuildId = `0x100D`
|
||||||
CHECK-NOT: S_GPROC32_ID {{.*}} `foo`
|
CHECK-NOT: S_GPROC32_ID {{.*}} `foo`
|
||||||
CHECK-LABEL: Mod 0002 | `* Linker *`:
|
CHECK-LABEL: Mod 0002 | `* Linker *`:
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
# CHECK: original type = 0x1004
|
# CHECK: original type = 0x1004
|
||||||
# CHECK: 240 | S_UDT [size = 12] `Foo`
|
# CHECK: 240 | S_UDT [size = 12] `Foo`
|
||||||
# CHECK: original type = 0x1004
|
# CHECK: original type = 0x1004
|
||||||
# CHECK: 252 | S_BUILDINFO [size = 8] BuildId = `4106`
|
# CHECK: 252 | S_BUILDINFO [size = 8] BuildId = `0x100A`
|
||||||
# CHECK-LABEL: Mod 0001 | `* Linker *`:
|
# CHECK-LABEL: Mod 0001 | `* Linker *`:
|
||||||
|
|
||||||
--- !COFF
|
--- !COFF
|
||||||
|
|
|
@ -848,7 +848,7 @@ public:
|
||||||
: SymbolRecord(SymbolRecordKind::BuildInfoSym),
|
: SymbolRecord(SymbolRecordKind::BuildInfoSym),
|
||||||
RecordOffset(RecordOffset) {}
|
RecordOffset(RecordOffset) {}
|
||||||
|
|
||||||
uint32_t BuildId;
|
TypeIndex BuildId;
|
||||||
|
|
||||||
uint32_t RecordOffset;
|
uint32_t RecordOffset;
|
||||||
};
|
};
|
||||||
|
|
|
@ -186,7 +186,7 @@ Error CVSymbolDumperImpl::visitKnownRecord(CVSymbol &CVR,
|
||||||
|
|
||||||
Error CVSymbolDumperImpl::visitKnownRecord(CVSymbol &CVR,
|
Error CVSymbolDumperImpl::visitKnownRecord(CVSymbol &CVR,
|
||||||
BuildInfoSym &BuildInfo) {
|
BuildInfoSym &BuildInfo) {
|
||||||
W.printNumber("BuildId", BuildInfo.BuildId);
|
printTypeIndex("BuildId", BuildInfo.BuildId);
|
||||||
return Error::success();
|
return Error::success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -472,13 +472,13 @@ ALL-NEXT: frontend = 18.0.31101.0, backend = 18.0.31101.0
|
||||||
ALL-NEXT: flags = security checks
|
ALL-NEXT: flags = security checks
|
||||||
ALL-NEXT: 120 | S_GPROC32 [size = 44] `main`
|
ALL-NEXT: 120 | S_GPROC32 [size = 44] `main`
|
||||||
ALL-NEXT: parent = 0, end = 196, addr = 0001:0016, code size = 10
|
ALL-NEXT: parent = 0, end = 196, addr = 0001:0016, code size = 10
|
||||||
ALL-NEXT: debug start = 3, debug end = 8, flags = has fp
|
ALL-NEXT: type = `0x1001 (int ())`, debug start = 3, debug end = 8, flags = has fp
|
||||||
ALL-NEXT: 164 | S_FRAMEPROC [size = 32]
|
ALL-NEXT: 164 | S_FRAMEPROC [size = 32]
|
||||||
ALL-NEXT: size = 0, padding size = 0, offset to padding = 0
|
ALL-NEXT: size = 0, padding size = 0, offset to padding = 0
|
||||||
ALL-NEXT: bytes of callee saved registers = 0, exception handler addr = 0000:0000
|
ALL-NEXT: bytes of callee saved registers = 0, exception handler addr = 0000:0000
|
||||||
ALL-NEXT: flags = has async eh | opt speed
|
ALL-NEXT: flags = has async eh | opt speed
|
||||||
ALL-NEXT: 196 | S_END [size = 4]
|
ALL-NEXT: 196 | S_END [size = 4]
|
||||||
ALL-NEXT: 200 | S_BUILDINFO [size = 8] BuildId = `4110`
|
ALL-NEXT: 200 | S_BUILDINFO [size = 8] BuildId = `0x100E`
|
||||||
ALL-NEXT: Mod 0001 | `* Linker *`:
|
ALL-NEXT: Mod 0001 | `* Linker *`:
|
||||||
ALL-NEXT: 4 | S_OBJNAME [size = 20] sig=0, `* Linker *`
|
ALL-NEXT: 4 | S_OBJNAME [size = 20] sig=0, `* Linker *`
|
||||||
ALL-NEXT: 24 | S_COMPILE3 [size = 48]
|
ALL-NEXT: 24 | S_COMPILE3 [size = 48]
|
||||||
|
|
|
@ -725,8 +725,9 @@ Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, ProcSym &Proc) {
|
||||||
Proc.Parent, Proc.End,
|
Proc.Parent, Proc.End,
|
||||||
formatSegmentOffset(Proc.Segment, Proc.CodeOffset),
|
formatSegmentOffset(Proc.Segment, Proc.CodeOffset),
|
||||||
Proc.CodeSize);
|
Proc.CodeSize);
|
||||||
P.formatLine("debug start = {0}, debug end = {1}, flags = {2}", Proc.DbgStart,
|
// FIXME: It seems FunctionType is sometimes an id and sometimes a type.
|
||||||
Proc.DbgEnd,
|
P.formatLine("type = `{0}`, debug start = {1}, debug end = {2}, flags = {3}",
|
||||||
|
typeIndex(Proc.FunctionType), Proc.DbgStart, Proc.DbgEnd,
|
||||||
formatProcSymFlags(P.getIndentLevel() + 9, Proc.Flags));
|
formatProcSymFlags(P.getIndentLevel() + 9, Proc.Flags));
|
||||||
return Error::success();
|
return Error::success();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue