who called me?

Ben Abbott bpabbott at mac.com
Wed Oct 22 12:50:12 CDT 2008


 
On Wednesday, October 22, 2008, at 11:44AM, "Søren Hauberg" <soren at hauberg.org> wrote:
>ons, 22 10 2008 kl. 11:30 -0400, skrev John W. Eaton:
>> On 22-Oct-2008, Søren Hauberg wrote:
>> 
>> |   Assuming I have a function 'f1', how can I get the name of whatever
>> | function called 'f1'?
>> |   I've tried to do this with a combination of 'evalin' and 'mfilename':
>> | 
>> |     function f1 ()
>> |       who_called_me = evalin ('caller', 'mfilename ()')
>> |     end
>> | 
>> | but that just gives me the name of 'f1'.
>> 
>> With the current development sources, you can use
>> 
>>   function f1 ()
>>     x = dbstack ();
>>     if (numel (x) > 1)
>>       caller = x(2).name
>>     else
>>       caller = "base"
>>     endif
>>   endfunction
>
>Thanks! Works like a charm.
>
>Søren

I've often wanted to check on who called a particular function.

Might it be possible to look one more caller back and write a general function like

    call = whocalledme ();

Ben



More information about the Help-octave mailing list