mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-19 08:24:12 +00:00
Fix a few minor issues when dumping symbols.
1) We weren't handling symbol types that weren't able to parse, even if we knew what the leaf type was. This was triggering when trying to dump /DEBUG:FASTLINK PDBs, where we expect a certain symbol to show up, but we just don't know how to parse it. 2) We lost the code for dumping record bytes, so this was added back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311116 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
35adac2ab6
commit
54e28fe2aa
@ -184,6 +184,8 @@ CV_SYMBOL(S_LDATA_HLSL32 , 0x1163)
|
||||
CV_SYMBOL(S_GDATA_HLSL32_EX, 0x1164)
|
||||
CV_SYMBOL(S_LDATA_HLSL32_EX, 0x1165)
|
||||
|
||||
CV_SYMBOL(S_FASTLINK, 0x1167)
|
||||
|
||||
// Known symbol types
|
||||
SYMBOL_RECORD(S_END , 0x0006, ScopeEndSym)
|
||||
SYMBOL_RECORD_ALIAS(S_INLINESITE_END , 0x114e, InlineSiteEnd, ScopeEndSym)
|
||||
|
@ -29,6 +29,7 @@ static StringRef getSymbolKindName(SymbolKind K) {
|
||||
#define SYMBOL_RECORD(EnumName, value, name) \
|
||||
case EnumName: \
|
||||
return #EnumName;
|
||||
#define CV_SYMBOL(EnumName, value) SYMBOL_RECORD(EnumName, value, EnumName)
|
||||
#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"
|
||||
default:
|
||||
llvm_unreachable("Unknown symbol kind!");
|
||||
@ -385,6 +386,10 @@ Error MinimalSymbolDumper::visitSymbolBegin(codeview::CVSymbol &Record,
|
||||
}
|
||||
|
||||
Error MinimalSymbolDumper::visitSymbolEnd(CVSymbol &Record) {
|
||||
if (RecordBytes) {
|
||||
AutoIndent Indent(P, 7);
|
||||
P.formatBinary("bytes", Record.content(), 0);
|
||||
}
|
||||
P.Unindent();
|
||||
return Error::success();
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ public:
|
||||
MinimalSymbolDumper(LinePrinter &P, bool RecordBytes,
|
||||
codeview::LazyRandomTypeCollection &Ids,
|
||||
codeview::LazyRandomTypeCollection &Types)
|
||||
: P(P), Ids(Ids), Types(Types) {}
|
||||
: P(P), RecordBytes(RecordBytes), Ids(Ids), Types(Types) {}
|
||||
|
||||
Error visitSymbolBegin(codeview::CVSymbol &Record) override;
|
||||
Error visitSymbolBegin(codeview::CVSymbol &Record, uint32_t Offset) override;
|
||||
@ -44,6 +44,7 @@ private:
|
||||
std::string idIndex(codeview::TypeIndex TI) const;
|
||||
|
||||
LinePrinter &P;
|
||||
bool RecordBytes;
|
||||
codeview::LazyRandomTypeCollection &Ids;
|
||||
codeview::LazyRandomTypeCollection &Types;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user