]> sourceware.org Git - systemtap.git/commitdiff
Implement caller:string() in terms of symname() and caller_addr().
authorMark Wielaard <mjw@redhat.com>
Wed, 13 May 2009 10:51:38 +0000 (12:51 +0200)
committerMark Wielaard <mjw@redhat.com>
Wed, 13 May 2009 10:51:38 +0000 (12:51 +0200)
* tapset/context-unwind.stp (caller): Implement as stap function using
  symname(), caller_addr() and sprintf().

tapset/context-unwind.stp

index f1e99dc8450df4546f60fd1bc6a173fd36ced4c2..d6654d25ef2468eaff9fff7033f84a1bd2f115dc 100644 (file)
@@ -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()))
  *  <emphasis>Works only for return probes at this time.</emphasis>
  */
-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
This page took 0.02574 seconds and 5 git commands to generate.