On Thu, 2015-08-20 at 19:32 +0200, Mark Wielaard wrote: > On Thu, 2015-08-20 at 10:06 -0700, Josh Stone wrote: > > On 08/20/2015 08:32 AM, Mark Wielaard wrote: > > > See Dwarf 4 2.17 Code Addresses and Ranges. In particular elfutils takes > > > advantage of: > > > "If an entity has no associated machine code, none of these attributes > > > are specified." > > > > (A -> B) does not give you (B -> A)! > > > > That is, the spec does *not* say "If none of these attributes are > > specified, the entity has no associated machine code." > > Maybe the spec needs clarification that is what is actually meant. Or > you can see it as a quality of implementation issue. But it is what we > need and what we rely on. Otherwise you have no way to know whether or > not to scan a whole CU or DIE subtree for program scope DIEs. And always > scanning each and every subtree just in case some program scope DIE is > hiding deep down is just silly.
I see it is in the non-normative text of 6.1 Accelerated Access: To find the debugging information associated with a subroutine, given an address, a debugger can use the low and high pc attributes of the compilation unit entries to quickly narrow down the search So, yes, it is non-normative, but it still makes a lot of sense :) Cheers, Mark