45 return Sym.CodeOffset;
50 return std::string(
Sym.Name);
56 return Session.getRVAFromSectOffset(
Sym.Segment,
Sym.CodeOffset);
60 return Session.getVAFromSectOffset(
Sym.Segment,
Sym.CodeOffset);
69 switch (Annot.OpCode) {
96std::unique_ptr<IPDBEnumSymbols>
99 if (!
Session.moduleIndexForVA(VA, Modi))
111 std::vector<SymIndexId> Frames;
114 auto End = Syms.
at(
Sym.End);
115 while (Start != End) {
118 for (; Start != End; ++Start) {
119 if (Start->kind() != S_INLINESITE)
128 Frames.insert(Frames.begin(), Id);
132 End = Syms.
at(IS.
End);
137 Start = Syms.
at(IS.
End);
146 return std::make_unique<NativeEnumSymbols>(
Session, std::move(Frames));
static bool inlineSiteContainsAddress(InlineSiteSym &IS, uint32_t OffsetInFunc)
Tagged union holding either a T or a Error.
Error takeError()
Take ownership of the stored error.
Iterator at(uint32_t Offset) const
given an offset into the array's underlying stream, return an iterator to the record at that offset.
iterator_range< BinaryAnnotationIterator > annotations() const
static Error deserializeAs(CVSymbol Symbol, T &Record)
NativeFunctionSymbol(NativeSession &Session, SymIndexId Id, const codeview::ProcSym &Sym, uint32_t RecordOffset)
uint32_t getAddressSection() const override
std::unique_ptr< IPDBEnumSymbols > findInlineFramesByVA(uint64_t VA) const override
uint64_t getVirtualAddress() const override
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
uint32_t getAddressOffset() const override
~NativeFunctionSymbol() override
std::string getName() const override
const codeview::ProcSym Sym
uint64_t getLength() const override
uint32_t getRelativeVirtualAddress() const override
NativeRawSymbol(NativeSession &PDBSession, PDB_SymType Tag, SymIndexId SymbolId)
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
This class implements an extremely fast bulk output stream that can only output to a stream.
@ ChangeCodeLengthAndCodeOffset
@ ChangeCodeOffsetAndLineOffset
VarStreamArray< CVSymbol > CVSymbolArray
void dumpSymbolField(raw_ostream &OS, StringRef Name, T Value, int Indent)
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn....
This is an optimization pass for GlobalISel generic memory operations.
void cantFail(Error Err, const char *Msg=nullptr)
Report a fatal error if Err is a failure value.
void consumeError(Error Err)
Consume a Error without doing anything.