aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/trace
diff options
context:
space:
mode:
authorMasami Hiramatsu <mhiramat@redhat.com>2009-10-07 18:27:40 -0400
committerFrederic Weisbecker <fweisbec@gmail.com>2009-10-12 13:21:35 -0400
commit405b2651e4bedf8d3932b64cad649b4d26b067f5 (patch)
tree2d0612b11756a450f31157693fd15858e98d66a2 /Documentation/trace
parent88f70d7590538e427c8405a2e02ac2624847386c (diff)
tracing/kprobes: Add $ prefix to special variables
Add $ prefix to the special variables(e.g. sa, rv) of kprobe-tracer. This resolves consistency issues between kprobe_events and perf-kprobe. The main goal is to avoid conflicts between local variable names of probed functions, used by perf probe, and special variables used in the kprobe event creation interface (stack values, etc...) and also available from perf probe. ie: we don't want rv (return value) to conflict with a local variable named rv in a probed function. Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Christoph Hellwig <hch@infradead.org> Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com> Cc: Jim Keniston <jkenisto@us.ibm.com> Cc: Frank Ch. Eigler <fche@redhat.com> LKML-Reference: <20091007222740.1684.91170.stgit@dhcp-100-2-132.bos.redhat.com> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Diffstat (limited to 'Documentation/trace')
-rw-r--r--Documentation/trace/kprobetrace.txt20
1 files changed, 10 insertions, 10 deletions
diff --git a/Documentation/trace/kprobetrace.txt b/Documentation/trace/kprobetrace.txt
index 9b8f7c6040a7..33f531858c56 100644
--- a/Documentation/trace/kprobetrace.txt
+++ b/Documentation/trace/kprobetrace.txt
@@ -36,13 +36,13 @@ Synopsis of kprobe_events
36 36
37 FETCHARGS : Arguments. Each probe can have up to 128 args. 37 FETCHARGS : Arguments. Each probe can have up to 128 args.
38 %REG : Fetch register REG 38 %REG : Fetch register REG
39 sN : Fetch Nth entry of stack (N >= 0)
40 sa : Fetch stack address.
41 @ADDR : Fetch memory at ADDR (ADDR should be in kernel) 39 @ADDR : Fetch memory at ADDR (ADDR should be in kernel)
42 @SYM[+|-offs] : Fetch memory at SYM +|- offs (SYM should be a data symbol) 40 @SYM[+|-offs] : Fetch memory at SYM +|- offs (SYM should be a data symbol)
43 aN : Fetch function argument. (N >= 0)(*) 41 $sN : Fetch Nth entry of stack (N >= 0)
44 rv : Fetch return value.(**) 42 $sa : Fetch stack address.
45 ra : Fetch return address.(**) 43 $aN : Fetch function argument. (N >= 0)(*)
44 $rv : Fetch return value.(**)
45 $ra : Fetch return address.(**)
46 +|-offs(FETCHARG) : Fetch memory at FETCHARG +|- offs address.(***) 46 +|-offs(FETCHARG) : Fetch memory at FETCHARG +|- offs address.(***)
47 NAME=FETCHARG: Set NAME as the argument name of FETCHARG. 47 NAME=FETCHARG: Set NAME as the argument name of FETCHARG.
48 48
@@ -85,13 +85,13 @@ Usage examples
85To add a probe as a new event, write a new definition to kprobe_events 85To add a probe as a new event, write a new definition to kprobe_events
86as below. 86as below.
87 87
88 echo p:myprobe do_sys_open dfd=a0 filename=a1 flags=a2 mode=a3 > /sys/kernel/debug/tracing/kprobe_events 88 echo p:myprobe do_sys_open dfd=$a0 filename=$a1 flags=$a2 mode=$a3 > /sys/kernel/debug/tracing/kprobe_events
89 89
90 This sets a kprobe on the top of do_sys_open() function with recording 90 This sets a kprobe on the top of do_sys_open() function with recording
911st to 4th arguments as "myprobe" event. As this example shows, users can 911st to 4th arguments as "myprobe" event. As this example shows, users can
92choose more familiar names for each arguments. 92choose more familiar names for each arguments.
93 93
94 echo r:myretprobe do_sys_open rv ra >> /sys/kernel/debug/tracing/kprobe_events 94 echo r:myretprobe do_sys_open $rv $ra >> /sys/kernel/debug/tracing/kprobe_events
95 95
96 This sets a kretprobe on the return point of do_sys_open() function with 96 This sets a kretprobe on the return point of do_sys_open() function with
97recording return value and return address as "myretprobe" event. 97recording return value and return address as "myretprobe" event.
@@ -138,11 +138,11 @@ events, you need to enable it.
138# TASK-PID CPU# TIMESTAMP FUNCTION 138# TASK-PID CPU# TIMESTAMP FUNCTION
139# | | | | | 139# | | | | |
140 <...>-1447 [001] 1038282.286875: myprobe: (do_sys_open+0x0/0xd6) dfd=3 filename=7fffd1ec4440 flags=8000 mode=0 140 <...>-1447 [001] 1038282.286875: myprobe: (do_sys_open+0x0/0xd6) dfd=3 filename=7fffd1ec4440 flags=8000 mode=0
141 <...>-1447 [001] 1038282.286878: myretprobe: (sys_openat+0xc/0xe <- do_sys_open) rv=fffffffffffffffe ra=ffffffff81367a3a 141 <...>-1447 [001] 1038282.286878: myretprobe: (sys_openat+0xc/0xe <- do_sys_open) $rv=fffffffffffffffe $ra=ffffffff81367a3a
142 <...>-1447 [001] 1038282.286885: myprobe: (do_sys_open+0x0/0xd6) dfd=ffffff9c filename=40413c flags=8000 mode=1b6 142 <...>-1447 [001] 1038282.286885: myprobe: (do_sys_open+0x0/0xd6) dfd=ffffff9c filename=40413c flags=8000 mode=1b6
143 <...>-1447 [001] 1038282.286915: myretprobe: (sys_open+0x1b/0x1d <- do_sys_open) rv=3 ra=ffffffff81367a3a 143 <...>-1447 [001] 1038282.286915: myretprobe: (sys_open+0x1b/0x1d <- do_sys_open) $rv=3 $ra=ffffffff81367a3a
144 <...>-1447 [001] 1038282.286969: myprobe: (do_sys_open+0x0/0xd6) dfd=ffffff9c filename=4041c6 flags=98800 mode=10 144 <...>-1447 [001] 1038282.286969: myprobe: (do_sys_open+0x0/0xd6) dfd=ffffff9c filename=4041c6 flags=98800 mode=10
145 <...>-1447 [001] 1038282.286976: myretprobe: (sys_open+0x1b/0x1d <- do_sys_open) rv=3 ra=ffffffff81367a3a 145 <...>-1447 [001] 1038282.286976: myretprobe: (sys_open+0x1b/0x1d <- do_sys_open) $rv=3 $ra=ffffffff81367a3a
146 146
147 147
148 Each line shows when the kernel hits an event, and <- SYMBOL means kernel 148 Each line shows when the kernel hits an event, and <- SYMBOL means kernel