[Bug tapsets/23761] New: generalized @entry

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[Bug tapsets/23761] New: generalized @entry

albert.aribaud at 3adev dot fr
https://sourceware.org/bugzilla/show_bug.cgi?id=23761

            Bug ID: 23761
           Summary: generalized @entry
           Product: systemtap
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: tapsets
          Assignee: systemtap at sourceware dot org
          Reporter: fche at redhat dot com
  Target Milestone: ---

With the arrival of non-[uk]retprobe mechanisms to trap return events (e.g.,
tp_syscall.*.return), the traditional @entry(expression) trick is no longer
directly workable.  This is because there is no mechanically-obvious entry
probe to collect the expression, and @entry($var) may need $var that are not
available at all in that form.

So we need to generalize this a bit.

One way is to introduce some macros that explicitly implement the @entry()
machinations behind the scenes:

- one macro to 'probe entry point & save variables'
- and one macro to 'probe exit point & expose saved variables'

used something like

probe syscall.* { @save(myargstr,argstr) }

probe syscall.*.return {
    @restore(myargstr)
    log(myargstr)
}

which would expand to code that manages a myargstr global array, tid()-indexed.

--
You are receiving this mail because:
You are the assignee for the bug.
Reply | Threaded
Open this post in threaded view
|

[Bug tapsets/23761] generalized @entry

albert.aribaud at 3adev dot fr
https://sourceware.org/bugzilla/show_bug.cgi?id=23761

Frank Ch. Eigler <fche at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|systemtap at sourceware dot org    |juddin at redhat dot com

--
You are receiving this mail because:
You are the assignee for the bug.