This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: patch 2/2 - Add support for probing DW_AT_ranges defined inline instances


>   The assumption made here is that the entry point to the inlined instance
> is the lowest address defined by the DW_AT_ranges attribute.

This assumption is unreliable.  

We came across this issue before, though perhaps it was not mentioned on
this mailing list.  For the cases we actually hit, it turned out that it
was simply a GCC bug in omitting DW_AT_entry_pc to go with DW_AT_ranges.
I don't have the GCC bug number off hand.

In the general case, there might be no single entry point to a particular
concrete inlined instance, and the compiler is correct in omitting
DW_AT_entry_pc for such cases--there is no way it can specify multiple
entry points in the DWARF format.  We discussed addressing these cases by
resorting to heuristics using the line number information, which can
associate multiple PC locations with a single source construct.  But the
real-world need for that may never arise, with the compiler fixed to emit
DW_AT_entry_pc in the cases where it's correct to do so.


Thanks,
Roland


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]