Re: [DynInst_API:] Removed createInstPointAtAddr


Date: Thu, 19 Apr 2012 17:47:29 -0700
From: Josh Stone <jistone@xxxxxxxxxx>
Subject: Re: [DynInst_API:] Removed createInstPointAtAddr
On 04/17/2012 12:14 PM, Andrew Bernat wrote:
> On Apr 16, 2012, at 12:32 PM, Josh Stone wrote:
>> Why would there be multiple functions for an address - just for inline
>> instances?  In that case I would only want to probe once at that
>> address, for whatever variety of inline contexts that entails.  Is there
>> something else that causes multiples?
> 
> Overlapping functions! We consider a function to be the code reachable
> from an entry point without traversing another call edge, so if two
> functions jump to common code then we'll represent them as overlapping. 

I see -- so instrumenting an address of one function within an overlap
would split that from other functions?  Then for my purposes, I'll want
to instrument the address for all cases.  And it will be identical
instrumentation for each, which makes it a bit unfortunate if they're
still forked, but c'est la vie.

I'm curious, how often do you see compilers produce overlapping
functions in practice?  At the instruction level, a tail-call
optimization might appear to be such a case, but that isn't truly an
overlap IMO, just ambiguity in what constitutes a "call".  Do true
overlaps occur naturally in some other cases?

Josh
[← Prev in Thread] Current Thread [Next in Thread→]