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


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.


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