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;
197 std::string &Result)
const;
222 uint64_t address)
const;
230 struct ParsingState {
233 void resetRowAndSequence();
234 void appendRowToMatrix(
uint32_t offset);
245 typedef std::map<uint32_t, LineTable> LineTableMapTy;
246 typedef LineTableMapTy::iterator LineTableIter;
247 typedef LineTableMapTy::const_iterator LineTableConstIter;
250 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
bool hasFileAtIndex(uint64_t FileIndex) const
uint32_t sizeofTotalLength() const
void appendRow(const DWARFDebugLine::Row &R)
iterator_range< detail::value_sequence_iterator< ValueT > > seq(ValueT Begin, ValueT End)
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
This class implements an extremely fast bulk output stream that can only output to a stream...
std::vector< Row > RowVector