[llvm-dev] Collecting address ranges in DWARFUnit::collectAddressRanges. (original) (raw)
David Blaikie via llvm-dev llvm-dev at lists.llvm.org
Thu Nov 16 12:20:08 PST 2017
- Previous message: [llvm-dev] Collecting address ranges in DWARFUnit::collectAddressRanges.
- Next message: [llvm-dev] Collecting address ranges in DWARFUnit::collectAddressRanges.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, Nov 16, 2017 at 11:44 AM Robinson, Paul <paul.robinson at sony.com> wrote:
There's no requirement that DWATranges (or high/lowpc) appear on the skeleton CU rather than the DWO CU. So it's quite possible that to get the address ranges covered by the CU one would need to look in the DWO, I think?
Is that not correct/have I misunderstood something there? The DWO isn't supposed to contain addresses (because it isn't supposed to contain relocations). In DWARF 5 the DWO can have FORMaddrx references to the .debugaddr section in the main .o file, which allows the DWO to contain DIEs/attributes that should have address values, because the actual address values are still in the .o file; but before that anything that's an address really can't go into the DWO.
DWOs didn't exist (in a standard form) before DWARF 5, right? Insofar as they did exist (in a non-standard form) they have always supported FORM_addr_index to reference addresses in .debug_addr in the main .o.
But the low_pc/high_pc/ranges attributes would appear in the .dwo, using a FORM_addr_index/FORM_addrx - so if you want to collect the address range of a CU you might need to load the .dwo to do so. That's the crux of what I was getting at: To get the address range a CU covers, you may need to read the .dwo.
Unless I am also misunderstanding something… --paulr -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171116/60a4a68d/attachment.html>
- Previous message: [llvm-dev] Collecting address ranges in DWARFUnit::collectAddressRanges.
- Next message: [llvm-dev] Collecting address ranges in DWARFUnit::collectAddressRanges.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]