This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: patch 2/2 - Add support for probing DW_AT_ranges defined inline instances
On Thu, 5 Apr 2007 03:02:30 -0700 (PDT) Roland McGrath <roland@redhat.com> wrote:
> > 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.
I knew it would be a little shaky, but worked for the few cases
I happened to stumble upon.
>
> 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.
OK, will try to lookup that bug.
>
> 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.
That's what I was afraid of with my simplistic heuristic.
> 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.
>
OK.
Thanks for your explanations.
Sébastien.