The previous implementation would only look 1 DW_AT_specification or DW_AT_abstract_origin deep. This means DWARFDie::getName() would fail in certain cases. I ran into such a case while creating a tool that used the LLVM DWARF parser to generate a symbolication format so I have seen this in the wild.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
This change also stops extra calls to the Die.find() when a new Die wasn't fetched using Die.getAttributeValueAsReferencedDie as it was always calling Die.Find() even with the old Die...
Comment Actions
It looks like the test exercises a recursive DW_AT_abstract_origin but not a recursive DW_AT_specification? The code does both, so the test should verify both.