Go to the documentation of this file.
30 RecordOffset(Offset) {}
69 switch (Annot.OpCode) {
70 case BinaryAnnotationsOpCode::CodeOffset:
71 case BinaryAnnotationsOpCode::ChangeCodeOffset:
72 case BinaryAnnotationsOpCode::ChangeCodeOffsetAndLineOffset:
77 case BinaryAnnotationsOpCode::ChangeCodeLength:
83 case BinaryAnnotationsOpCode::ChangeCodeLengthAndCodeOffset:
96 std::unique_ptr<IPDBEnumSymbols>
111 std::vector<SymIndexId> Frames;
115 while (Start != End) {
118 for (; Start != End; ++Start) {
119 if (Start->kind() != S_INLINESITE)
123 cantFail(SymbolDeserializer::deserializeAs<InlineSiteSym>(*Start));
128 Frames.insert(Frames.begin(),
Id);
132 End = Syms.
at(IS.
End);
137 Start = Syms.
at(IS.
End);
uint32_t getAddressSection() const override
This is an optimization pass for GlobalISel generic memory operations.
uint32_t getRVAFromSectOffset(uint32_t Section, uint32_t Offset) const
static bool inlineSiteContainsAddress(InlineSiteSym &IS, uint32_t OffsetInFunc)
SymIndexId getOrCreateInlineSymbol(codeview::InlineSiteSym Sym, uint64_t ParentAddr, uint16_t Modi, uint32_t RecordOffset) const
uint64_t getVAFromSectOffset(uint32_t Section, uint32_t Offset) const
Tagged union holding either a T or a Error.
uint32_t getAddressOffset() const override
Expected< ModuleDebugStreamRef > getModuleDebugStream(uint32_t Index) const
void consumeError(Error Err)
Consume a Error without doing anything.
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn....
bool moduleIndexForVA(uint64_t VA, uint16_t &ModuleIndex) const
This class implements an extremely fast bulk output stream that can only output to a stream.
uint64_t getLength() const override
const codeview::ProcSym Sym
void dumpSymbolField(raw_ostream &OS, StringRef Name, T Value, int Indent)
compiles ldr LCPI1_0 ldr ldr mov lsr tst moveq r1 ldr LCPI1_1 and r0 bx lr It would be better to do something like to fold the shift into the conditional move
SymbolCache & getSymbolCache()
uint32_t getRelativeVirtualAddress() const override
void cantFail(Error Err, const char *Msg=nullptr)
Report a fatal error if Err is a failure value.
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
~NativeFunctionSymbol() override
std::string getName() 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
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