10 #ifndef LLVM_DEBUGINFO_CODEVIEW_MODULESUBSTREAMVISITOR_H
11 #define LLVM_DEBUGINFO_CODEVIEW_MODULESUBSTREAMVISITOR_H
81 using namespace codeview;
82 const LineFileBlockHeader *BlockHeader;
88 BlockHeader->NumLines *
89 (
sizeof(LineNumberEntry) + (HasColumn ?
sizeof(ColumnNumberEntry) : 0));
90 if (BlockHeader->BlockSize <
sizeof(LineFileBlockHeader))
91 return make_error<CodeViewError>(cv_error_code::corrupt_record,
92 "Invalid line block record size");
93 uint32_t Size = BlockHeader->BlockSize -
sizeof(LineFileBlockHeader);
94 if (LineInfoSize > Size)
95 return make_error<CodeViewError>(cv_error_code::corrupt_record,
96 "Invalid line block record size");
99 Len = BlockHeader->BlockSize;
118 using namespace codeview;
119 const FileChecksum *Header;
127 Len =
sizeof(FileChecksum) + Header->ChecksumSize;
136 #endif // LLVM_DEBUGINFO_CODEVIEW_MODULESUBSTREAMVISITOR_H
support::ulittle32_t NameIndex
virtual Error visitFileChecksums(msf::ReadableStreamRef Data, const FileChecksumArray &Checksums)
Error operator()(ReadableStreamRef Stream, uint32_t &Len, codeview::LineColumnEntry &Item) const
msf::FixedStreamArray< ColumnNumberEntry > Columns
msf::VarStreamArray< FileChecksumEntry > FileChecksumArray
msf::VarStreamArray< LineColumnEntry > LineInfoArray
virtual Error visitMergedAssemblyInput(msf::ReadableStreamRef Data)
virtual Error visitCrossScopeImports(msf::ReadableStreamRef Data)
virtual Error visitCrossScopeExports(msf::ReadableStreamRef Data)
virtual Error visitInlineeLines(msf::ReadableStreamRef Data)
virtual Error visitSymbols(msf::ReadableStreamRef Data)
virtual Error visitStringTable(msf::ReadableStreamRef Data)
virtual Error visitUnknown(ModuleSubstreamKind Kind, msf::ReadableStreamRef Data)=0
Error readBytes(ArrayRef< uint8_t > &Buffer, uint32_t Size)
msf::FixedStreamArray< LineNumberEntry > LineNumbers
virtual Error visitTypeMDTokenMap(msf::ReadableStreamRef Data)
Error readArray(ArrayRef< T > &Array, uint32_t NumElements)
Error visitModuleSubstream(const ModuleSubstream &R, IModuleSubstreamVisitor &V)
VarStreamArrayExtractor(const codeview::LineSubstreamHeader *Header)
virtual Error visitILLines(msf::ReadableStreamRef Data)
static ErrorSuccess success()
Create a success value.
virtual Error visitFrameData(msf::ReadableStreamRef Data)
virtual Error visitCoffSymbolRVA(msf::ReadableStreamRef Data)
virtual ~IModuleSubstreamVisitor()=default
virtual Error visitFuncMDTokenMap(msf::ReadableStreamRef Data)
ArrayRef< uint8_t > Checksum
Lightweight error class with error context and mandatory checking.
virtual Error visitLines(msf::ReadableStreamRef Data, const LineSubstreamHeader *Header, const LineInfoArray &Lines)
Error readObject(const T *&Dest)