mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-29 13:54:57 +00:00
DWARFUnit: Add a couple of helpers to access the DIE array.
To be used in dsymutil (or any other client that wants to take advantage of the fact that DIEs are stored in a vector). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229179 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
16acc91bc4
commit
ae0c4604d4
@ -233,6 +233,26 @@ public:
|
||||
return DIE - &DieArray[0];
|
||||
}
|
||||
|
||||
/// \brief Return the DIE object at the given index.
|
||||
const DWARFDebugInfoEntryMinimal *getDIEAtIndex(unsigned Index) const {
|
||||
assert(Index < DieArray.size());
|
||||
return &DieArray[Index];
|
||||
}
|
||||
|
||||
/// \brief Return the DIE object for a given offset inside the
|
||||
/// unit's DIE vector.
|
||||
///
|
||||
/// The unit needs to have his DIEs extracted for this method to work.
|
||||
const DWARFDebugInfoEntryMinimal *getDIEForOffset(uint32_t Offset) const {
|
||||
assert(!DieArray.empty());
|
||||
auto it = std::lower_bound(
|
||||
DieArray.begin(), DieArray.end(), Offset,
|
||||
[=](const DWARFDebugInfoEntryMinimal &LHS, uint32_t Offset) {
|
||||
return LHS.getOffset() < Offset;
|
||||
});
|
||||
return it == DieArray.end() ? nullptr : &*it;
|
||||
}
|
||||
|
||||
private:
|
||||
/// Size in bytes of the .debug_info data associated with this compile unit.
|
||||
size_t getDebugInfoSize() const { return Length + 4 - getHeaderSize(); }
|
||||
|
Loading…
Reference in New Issue
Block a user