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]

[Bug tapsets/14079] New: caller() pass-4 error if no uretprobes in script


http://sourceware.org/bugzilla/show_bug.cgi?id=14079

             Bug #: 14079
           Summary: caller() pass-4 error if no uretprobes in script
           Product: systemtap
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: tapsets
        AssignedTo: systemtap@sourceware.org
        ReportedBy: fche@redhat.com
    Classification: Unclassified


stap -e 'probe module("tun").function("tun_net_xmit@drivers/net/tun.c").call  {
printf("tun_net_xmit %x from %s\n", $skb->ip_summed, caller()); }'

results in a stap -p4 compilation error, due to this bit in the caller
embedded-c:

#ifdef STAPCONF_UPROBE_GET_PC
        else if (CONTEXT->probe_type == _STP_PROBE_HANDLER_URETPROBE)
                THIS->__retvalue =
(int64_t)(long)_stp_ret_addr_r(CONTEXT->ips.ri);
#endif

with apparently no one including enough uprobes.h goop to make this from
runtime/common_probe_context.h compilable:

  /* uretprobe state */
  struct uretprobe_instance *ri;

This could be fixed a couple of ways, but my favorite would be to use this as
an opportunity to do bug #6580, which would reimplement caller() etc. in terms
of backtracing functions instead of such low-level embedded-c runes.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


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