diff options
author | Zachary Turner <zturner@google.com> | 2015-02-15 20:27:53 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2015-02-15 20:27:53 +0000 |
commit | c0acf6837b8f795d6afae2e06f1fcf96f7669084 (patch) | |
tree | 9b02d8de51c13b714d63bfbdcbb8a89bed4cdd75 /llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp | |
parent | 583089c6c67bba5222fc277f1e25dd349efa70bd (diff) | |
download | llvm-c0acf6837b8f795d6afae2e06f1fcf96f7669084.zip llvm-c0acf6837b8f795d6afae2e06f1fcf96f7669084.tar.gz llvm-c0acf6837b8f795d6afae2e06f1fcf96f7669084.tar.bz2 |
llvm-pdbdump: Add flags controlling the type of values to dump.
llvm-svn: 229330
Diffstat (limited to 'llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp')
-rw-r--r-- | llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp | 94 |
1 files changed, 46 insertions, 48 deletions
diff --git a/llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp b/llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp index 516b87e..9a04ecd 100644 --- a/llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp +++ b/llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp @@ -24,58 +24,56 @@ PDBSymbolData::PDBSymbolData(const IPDBSession &PDBSession, : PDBSymbol(PDBSession, std::move(DataSymbol)) {} void PDBSymbolData::dump(raw_ostream &OS, int Indent, - PDB_DumpLevel Level) const { + PDB_DumpLevel Level, PDB_DumpFlags Flags) const { OS << stream_indent(Indent); PDB_LocType Loc = getLocationType(); PDB_DataKind Kind = getDataKind(); - if (Level >= PDB_DumpLevel::Normal) { - switch (Loc) { - case PDB_LocType::Static: { - uint32_t RVA = getRelativeVirtualAddress(); - OS << Kind << " data["; - if (RVA != 0) - OS << format_hex(RVA, 10); - else - OS << "???"; - break; - } - case PDB_LocType::TLS: - OS << "threadlocal " << Kind << " data["; - OS << getAddressSection() << ":" << format_hex(getAddressOffset(), 10); - break; - case PDB_LocType::RegRel: - OS << "regrel " << Kind << " data["; - OS << getRegisterId() << " + " << getOffset(); - break; - case PDB_LocType::ThisRel: { - uint32_t Offset = getOffset(); - OS << Kind << " data[this + " << format_hex(Offset, 4); - break; - } - case PDB_LocType::Enregistered: - OS << "register " << Kind << " data[" << getRegisterId(); - break; - case PDB_LocType::BitField: { - OS << "bitfield data[this + "; - uint32_t Offset = getOffset(); - uint32_t BitPos = getBitPosition(); - uint32_t Length = getLength(); - OS << format_hex(Offset, 4) << ":" << BitPos << "," << Length; - break; - } - case PDB_LocType::Slot: - OS << getSlot(); - break; - case PDB_LocType::Constant: { - OS << "constant data["; - OS << getValue(); - break; - } - case PDB_LocType::IlRel: - case PDB_LocType::MetaData: - default: + switch (Loc) { + case PDB_LocType::Static: { + uint32_t RVA = getRelativeVirtualAddress(); + OS << Kind << " data["; + if (RVA != 0) + OS << format_hex(RVA, 10); + else OS << "???"; - } + break; + } + case PDB_LocType::TLS: + OS << "threadlocal " << Kind << " data["; + OS << getAddressSection() << ":" << format_hex(getAddressOffset(), 10); + break; + case PDB_LocType::RegRel: + OS << "regrel " << Kind << " data["; + OS << getRegisterId() << " + " << getOffset(); + break; + case PDB_LocType::ThisRel: { + uint32_t Offset = getOffset(); + OS << Kind << " data[this + " << format_hex(Offset, 4); + break; + } + case PDB_LocType::Enregistered: + OS << "register " << Kind << " data[" << getRegisterId(); + break; + case PDB_LocType::BitField: { + OS << "bitfield data[this + "; + uint32_t Offset = getOffset(); + uint32_t BitPos = getBitPosition(); + uint32_t Length = getLength(); + OS << format_hex(Offset, 4) << ":" << BitPos << "," << Length; + break; + } + case PDB_LocType::Slot: + OS << getSlot(); + break; + case PDB_LocType::Constant: { + OS << "constant data["; + OS << getValue(); + break; + } + case PDB_LocType::IlRel: + case PDB_LocType::MetaData: + default: + OS << "???"; } OS << "] "; |