From 90562d7d561c26b25aa73082bd33eaa399688187 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 13 May 2009 12:51:38 +0200 Subject: Implement caller:string() in terms of symname() and caller_addr(). * tapset/context-unwind.stp (caller): Implement as stap function using symname(), caller_addr() and sprintf(). --- tapset/context-unwind.stp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'tapset/context-unwind.stp') diff --git a/tapset/context-unwind.stp b/tapset/context-unwind.stp index f1e99dc8..d6654d25 100644 --- a/tapset/context-unwind.stp +++ b/tapset/context-unwind.stp @@ -51,16 +51,13 @@ function backtrace:string () %{ /* pure */ * sfunction caller - Return name and address of calling function * * Return the address and name of the calling function. + * This is equivalent to calling: + * sprintf("%s 0x%x", symname(caller_addr(), caller_addr())) * Works only for return probes at this time. */ -function caller:string() %{ /* pure */ - if (CONTEXT->pi) - _stp_symbol_snprint( THIS->__retvalue, MAXSTRINGLEN, - (unsigned long)_stp_ret_addr_r(CONTEXT->pi), - current, 0); - else - strlcpy(THIS->__retvalue,"unknown",MAXSTRINGLEN); -%} +function caller:string() { + return sprintf("%s 0x%x", symname(caller_addr()), caller_addr()); +} /** * sfunction caller_addr - Return caller address -- cgit