Lines Matching defs:Die
44 DWARFDie Die = CU->getUnitDIE();
45 Language = dwarf::toUnsigned(Die.find(dwarf::DW_AT_language), 0);
89 static DWARFDie GetParentDeclContextDIE(DWARFDie &Die) {
91 Die.getAttributeValueAsReferencedDie(dwarf::DW_AT_specification)) {
96 Die.getAttributeValueAsReferencedDie(dwarf::DW_AT_abstract_origin)) {
104 if (Die.getTag() == dwarf::DW_TAG_inlined_subroutine)
107 DWARFDie ParentDie = Die.getParent();
135 getQualifiedNameIndex(DWARFDie &Die, uint64_t Language, GsymCreator &Gsym) {
137 if (auto LinkageName = Die.getLinkageName()) {
143 StringRef ShortName(Die.getName(DINameKind::ShortName));
165 DWARFDie ParentDeclCtxDie = GetParentDeclContextDIE(Die);
189 static bool hasInlineInfo(DWARFDie Die, uint32_t Depth) {
191 switch (Die.getTag()) {
203 for (DWARFDie ChildDie : Die.children()) {
221 CUInfo &CUI, DWARFDie Die, uint32_t Depth,
225 if (!hasInlineInfo(Die, Depth))
228 dwarf::Tag Tag = Die.getTag();
233 Expected<DWARFAddressRangesVector> RangesOrError = Die.getAddressRanges();
259 << HEX32(Die.getOffset()) << " has a range ["
279 if (auto NameIndex = getQualifiedNameIndex(Die, CUI.Language, Gsym))
282 Die.findRecursively(dwarf::DW_AT_call_file), UINT32_MAX);
287 II.CallLine = dwarf::toUnsigned(Die.find(dwarf::DW_AT_call_line), 0);
289 for (DWARFDie ChildDie : Die.children())
297 OS << "error: inlined function DIE at " << HEX32(Die.getOffset())
306 // skip this Die and just recurse down
307 for (DWARFDie ChildDie : Die.children())
314 DWARFDie Die, GsymCreator &Gsym,
327 std::string FilePath = Die.getDeclFile(
334 Die.findRecursively(dwarf::DW_AT_decl_file), UINT32_MAX);
335 OS << "error: function DIE at " << HEX32(Die.getOffset())
344 dwarf::toUnsigned(Die.findRecursively({dwarf::DW_AT_decl_line}))) {
362 OS << "error: function DIE at " << HEX32(Die.getOffset()) << " has "
388 Die.dump(OS, 0, DIDumpOptions::getForSingleDIE());
409 Die.dump(OS, 0, DIDumpOptions::getForSingleDIE());
418 Die.dump(OS, 0, DIDumpOptions::getForSingleDIE());
448 DWARFDie Die) {
449 switch (Die.getTag()) {
451 Expected<DWARFAddressRangesVector> RangesOrError = Die.getAddressRanges();
459 auto NameIndex = getQualifiedNameIndex(Die, CUI.Language, Gsym);
462 OS << "error: function at " << HEX64(Die.getOffset())
464 Die.dump(OS, 0, DIDumpOptions::getForSingleDIE());
508 Die.dump(OS, 0, DIDumpOptions::getForSingleDIE());
519 convertFunctionLineTable(Out, CUI, Die, Gsym, FI);
521 if (hasInlineInfo(Die, 0)) {
526 parseInlineInfo(Gsym, Out, CUI, Die, 0, FI, *FI.Inline,
544 Die.dump(OS, 0, DIDumpOptions::getForSingleDIE());
555 for (DWARFDie ChildDie : Die.children())
587 DWARFDie Die = getDie(*CU);
589 handleDie(Out, CUI, Die);
612 DWARFDie Die = getDie(*CU);
613 if (Die) {
615 pool.async([this, CUI, &LogMutex, &Out, Die]() mutable {
619 handleDie(ThreadOut, CUI, Die);