10 #ifndef LLVM_LIB_DEBUGINFO_DWARFDEBUGLINE_H
11 #define LLVM_LIB_DEBUGINFO_DWARFDEBUGLINE_H
94 explicit Row(
bool default_is_stmt =
false);
98 void reset(
bool default_is_stmt);
189 std::vector<uint32_t> &result)
const;
195 std::string &Result)
const;
208 uint32_t *offset_ptr);
220 uint64_t address)
const;
228 struct ParsingState {
231 void resetRowAndSequence();
232 void appendRowToMatrix(uint32_t offset);
243 typedef std::map<uint32_t, LineTable> LineTableMapTy;
244 typedef LineTableMapTy::iterator LineTableIter;
245 typedef LineTableMapTy::const_iterator LineTableConstIter;
248 LineTableMapTy LineTableMap;
DWARFDebugLine(const RelocAddrMap *LineInfoRelocMap)
RowVector::const_iterator RowIter
std::vector< Sequence > SequenceVector
static bool orderByAddress(const Row &LHS, const Row &RHS)
bool getFileNameByIndex(uint64_t FileIndex, const char *CompDir, DILineInfoSpecifier::FileLineInfoKind Kind, std::string &Result) const
SequenceVector::const_iterator SequenceIter
const LineTable * getLineTable(uint32_t offset) const
uint32_t getStatementTableLength() const
DILineInfo - a format-neutral container for source line information.
void postAppend()
Called after a row is appended to the matrix.
Row(bool default_is_stmt=false)
LLVM Basic Block Representation.
uint32_t sizeofPrologueLength() const
void dump(raw_ostream &OS) const
void dump(raw_ostream &OS) const
bool parse(DataExtractor debug_line_data, uint32_t *offset_ptr)
int32_t getMaxLineIncrementForSpecialOpcode() const
void dump(raw_ostream &OS) const
bool parse(DataExtractor debug_line_data, const RelocAddrMap *RMap, uint32_t *offset_ptr)
Parse prologue and all rows.
const LineTable * getOrParseLineTable(DataExtractor debug_line_data, uint32_t offset)
bool lookupAddressRange(uint64_t address, uint64_t size, std::vector< uint32_t > &result) const
void appendSequence(const DWARFDebugLine::Sequence &S)
uint32_t lookupAddress(uint64_t address) const
std::vector< const char * > IncludeDirectories
uint32_t sizeofTotalLength() const
void appendRow(const DWARFDebugLine::Row &R)
std::vector< uint8_t > StandardOpcodeLengths
void reset(bool default_is_stmt)
const uint32_t UnknownRowIndex
bool containsPC(uint64_t pc) const
uint32_t getLength() const
std::vector< FileNameEntry > FileNames
static bool orderByLowPC(const Sequence &LHS, const Sequence &RHS)
bool getFileLineInfoForAddress(uint64_t Address, const char *CompDir, DILineInfoSpecifier::FileLineInfoKind Kind, DILineInfo &Result) const
const ARM::ArchExtKind Kind
This class implements an extremely fast bulk output stream that can only output to a stream...
std::vector< Row > RowVector