本文整理汇总了C++中DWARFDebugArangeSet::getNumDescriptors方法的典型用法代码示例。如果您正苦于以下问题:C++ DWARFDebugArangeSet::getNumDescriptors方法的具体用法?C++ DWARFDebugArangeSet::getNumDescriptors怎么用?C++ DWARFDebugArangeSet::getNumDescriptors使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DWARFDebugArangeSet
的用法示例。
在下文中一共展示了DWARFDebugArangeSet::getNumDescriptors方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: extract
void DWARFDebugAranges::extract(DataExtractor DebugArangesData) {
if (!DebugArangesData.isValidOffset(0))
return;
uint32_t Offset = 0;
typedef std::vector<DWARFDebugArangeSet> RangeSetColl;
RangeSetColl Sets;
DWARFDebugArangeSet Set;
uint32_t TotalRanges = 0;
while (Set.extract(DebugArangesData, &Offset)) {
Sets.push_back(Set);
TotalRanges += Set.getNumDescriptors();
}
if (TotalRanges == 0)
return;
Aranges.reserve(TotalRanges);
for (RangeSetColl::const_iterator I = Sets.begin(), E = Sets.end(); I != E;
++I) {
uint32_t CUOffset = I->getCompileUnitDIEOffset();
for (uint32_t i = 0, n = I->getNumDescriptors(); i < n; ++i) {
const DWARFDebugArangeSet::Descriptor *ArangeDescPtr =
I->getDescriptor(i);
uint64_t LowPC = ArangeDescPtr->Address;
uint64_t HighPC = LowPC + ArangeDescPtr->Length;
appendRange(CUOffset, LowPC, HighPC);
}
}
}