File: Useful_Scripts-paracallgraph.xml

package info (click to toggle)
systemtap 5.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 47,556 kB
  • sloc: cpp: 81,117; ansic: 54,933; xml: 49,795; exp: 43,595; sh: 11,526; python: 5,003; perl: 2,252; tcl: 1,312; makefile: 1,006; javascript: 149; lisp: 105; awk: 101; asm: 91; java: 70; sed: 16
file content (147 lines) | stat: -rw-r--r-- 5,282 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?xml version='1.0'?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
]>


	<section id="paracallgraph">
		<title>Call Graph Tracing</title>

<indexterm>
<primary>script examples</primary>
<secondary>call graph tracing</secondary>
</indexterm>

<indexterm>
<primary>examples of SystemTap scripts</primary>
<secondary>call graph tracing</secondary>
</indexterm>

<indexterm>
<primary>call graph tracing</primary>
<secondary>examples of SystemTap scripts</secondary>
</indexterm>

<indexterm>
<primary>incoming/outgoing function calls, tracing</primary>
<secondary>examples of SystemTap scripts</secondary>
</indexterm>
<indexterm>
<primary>function calls (incoming/outgoing), tracing</primary>
<secondary>examples of SystemTap scripts</secondary>
</indexterm>
<indexterm>
<primary>tracing incoming/outgoing function calls</primary>
<secondary>examples of SystemTap scripts</secondary>
</indexterm>
<indexterm>
<primary>tracing call graph</primary>
<secondary>examples of SystemTap scripts</secondary>
</indexterm>

		<remark>
			WAR STORY: Call graph tracing http://sourceware.org/systemtap/wiki/WSCallGraph?highlight=((WarStories))
		</remark>

		<remark>
			script: http://sourceware.org/systemtap/examples/general/para-callgraph.stp
		</remark>


	<para>This section describes how to trace incoming and outgoing function calls. </para>

<formalpara id="scriptcallgraph">
	<title>para-callgraph.stp</title>
<para>
<programlisting><xi:include parse="text" href="../testsuite/systemtap.examples/general/para-callgraph.stp" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
</para>
</formalpara>
<indexterm>
<primary>script examples</primary>
<secondary>multiple command-line arguments, example of</secondary>
</indexterm>

<indexterm>
<primary>examples of SystemTap scripts</primary>
<secondary>multiple command-line arguments, example of</secondary>
</indexterm>

<indexterm>
<primary>multiple command-line arguments, example of</primary>
<secondary>examples of SystemTap scripts</secondary>
</indexterm>
<indexterm>
<primary>example of multiple command-line arguments</primary>
<secondary>examples of SystemTap scripts</secondary>
</indexterm>

<para><xref linkend="scriptcallgraph"/> takes two command-line arguments:</para>
<indexterm>
<primary>script examples</primary>
<secondary>trigger function</secondary>
</indexterm>

<indexterm>
<primary>examples of SystemTap scripts</primary>
<secondary>trigger function</secondary>
</indexterm>

<indexterm>
<primary>trigger function</primary>
<secondary>examples of SystemTap scripts</secondary>
</indexterm>
<itemizedlist>
	<listitem><para>
			The function/s whose entry/exit call you'd like to trace
			(<command>$1</command>).
		</para></listitem>

	<listitem><para>
			A second optional <firstterm>trigger function</firstterm> (<command>$2</command>), which
			enables or disables tracing on a per-thread basis. Tracing in each thread
			will continue as long as the trigger function has not exited yet.
		</para></listitem>

</itemizedlist>

<remark> please verify previous if correct; i'm particularly interested in finding out how to better describe "trigger function"</remark>
<indexterm>
<primary>script examples</primary>
<secondary>thread_indent(), sample usage</secondary>
</indexterm>

<indexterm>
<primary>examples of SystemTap scripts</primary>
<secondary>thread_indent(), sample usage</secondary>
</indexterm>

<indexterm>
<primary>thread_indent(), sample usage</primary>
<secondary>examples of SystemTap scripts</secondary>
</indexterm>

<para><xref linkend="scriptcallgraph"/> uses <command>thread_indent()</command>; as such, its output contains the timestamp, process name, and thread ID of <command>$1</command> (that is, the probe function you are tracing). For more information about <command>thread_indent()</command>, refer to its entry in <xref linkend="systemtapscript-functions"/>.</para>

		<para>The following example contains an excerpt from the output
for <command>stap para-callgraph.stp 'kernel.function("*@fs/*.c")' 'kernel.function("sys_read")'</command>:</para>


<example id="paracallgraphoutput">
	<title><xref linkend="scriptcallgraph"/> Sample Output</title>
<screen>[...]
   267 gnome-terminal(2921): &lt;-do_sync_read return=0xfffffffffffffff5
   269 gnome-terminal(2921):&lt;-vfs_read return=0xfffffffffffffff5
     0 gnome-terminal(2921):->fput file=0xffff880111eebbc0
     2 gnome-terminal(2921):&lt;-fput
     0 gnome-terminal(2921):->fget_light fd=0x3 fput_needed=0xffff88010544df54
     3 gnome-terminal(2921):&lt;-fget_light return=0xffff8801116ce980
     0 gnome-terminal(2921):->vfs_read file=0xffff8801116ce980 buf=0xc86504 count=0x1000 pos=0xffff88010544df48
     4 gnome-terminal(2921): ->rw_verify_area read_write=0x0 file=0xffff8801116ce980 ppos=0xffff88010544df48 count=0x1000
     7 gnome-terminal(2921): &lt;-rw_verify_area return=0x1000
    12 gnome-terminal(2921): ->do_sync_read filp=0xffff8801116ce980 buf=0xc86504 len=0x1000 ppos=0xffff88010544df48
    15 gnome-terminal(2921): &lt;-do_sync_read return=0xfffffffffffffff5
    18 gnome-terminal(2921):&lt;-vfs_read return=0xfffffffffffffff5
     0 gnome-terminal(2921):->fput file=0xffff8801116ce980</screen>
</example>

	</section>