From 744cf3ab2a4735510874646ac720b4b28701f16f Mon Sep 17 00:00:00 2001 From: William Cohen Date: Wed, 10 Dec 2008 15:22:53 -0500 Subject: Add information about default MAXNESTING and MAXACTION allowed. --- doc/SystemTap_Beginners_Guide/en-US/Errors.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'doc/SystemTap_Beginners_Guide') diff --git a/doc/SystemTap_Beginners_Guide/en-US/Errors.xml b/doc/SystemTap_Beginners_Guide/en-US/Errors.xml index ffb70470..910ff510 100644 --- a/doc/SystemTap_Beginners_Guide/en-US/Errors.xml +++ b/doc/SystemTap_Beginners_Guide/en-US/Errors.xml @@ -807,6 +807,7 @@ An array containing aggregate values contains too many distinct key pairs at thi Too many levels of function call nesting were attempted. + The default nesting of function calls allowed is 10. @@ -843,7 +844,9 @@ An array containing aggregate values contains too many distinct key pairs at thi understainding SystemTap errors - The probe handler attempted to execute too many statements in the probe handler. + The probe handler attempted to execute too many statements in the + probe handler. The default number of actions allow in a probe handler + is 1000. -- cgit From cffd1e12179857f6fc50d848c7ecc35742aca75e Mon Sep 17 00:00:00 2001 From: William Cohen Date: Mon, 15 Dec 2008 14:29:30 -0500 Subject: Minor edits and format corrections. --- doc/SystemTap_Beginners_Guide/en-US/Scripts.xml | 138 ++++++++++----------- .../en-US/Understanding_How_SystemTap_Works.xml | 2 +- 2 files changed, 70 insertions(+), 70 deletions(-) (limited to 'doc/SystemTap_Beginners_Guide') diff --git a/doc/SystemTap_Beginners_Guide/en-US/Scripts.xml b/doc/SystemTap_Beginners_Guide/en-US/Scripts.xml index fe2e69f4..bb71625e 100644 --- a/doc/SystemTap_Beginners_Guide/en-US/Scripts.xml +++ b/doc/SystemTap_Beginners_Guide/en-US/Scripts.xml @@ -129,7 +129,7 @@ SystemTap scripts use the file extension .stp, and - are conatains probes written in the following format: + contains probes written in the following format: @@ -555,21 +555,21 @@ probe timer.s(4) Consider the following sample script: - helloworld.stp - - probe begin - { - printf ("hello world\n") - exit () - } - - +helloworld.stp + +probe begin +{ + printf ("hello world\n") + exit () +} + + In , the event begin (i.e. the start of the session) triggers the handler enclosed in { }, which simply prints hello - world, then exits. + world followed by a new-line, then exits. @@ -666,15 +666,15 @@ probe timer.s(4) To illustrate this, consider the following probe example: - - variables-in-printf-statements.stp - - probe syscall.open - { - printf ("%s(%d) open\n", execname(), pid()) - } - - + +variables-in-printf-statements.stp + +probe syscall.open +{ + printf ("%s(%d) open\n", execname(), pid()) +} + + instructs SystemTap to probe all entries to @@ -688,16 +688,16 @@ probe timer.s(4) to "argument1", "format specifier2" is to "argument2", or is this clear enough? - - vmware-guestd(2206) open - hald(2360) open - hald(2360) open - hald(2360) open - df(3433) open - df(3433) open - df(3433) open - hald(2360) open - + +vmware-guestd(2206) open +hald(2360) open +hald(2360) open +hald(2360) open +df(3433) open +df(3433) open +df(3433) open +hald(2360) open + SystemTap Functions @@ -945,42 +945,42 @@ probe timer.s(4) thread_indent(): - thread_indent.stp - - probe kernel.function("*@net/socket.c") - { - printf ("%s -> %s\n", thread_indent(1), probefunc()) - } - probe kernel.function("*@net/socket.c").return - { - printf ("%s <- %s\n", thread_indent(-1), probefunc()) - } - - +thread_indent.stp + +probe kernel.function("*@net/socket.c") +{ + printf ("%s -> %s\n", thread_indent(1), probefunc()) +} +probe kernel.function("*@net/socket.c").return +{ + printf ("%s <- %s\n", thread_indent(-1), probefunc()) +} + + prints out the thread_indent() and probe functions at each event in the following format: - - 0 ftp(7223): -> sys_socketcall - 1159 ftp(7223): -> sys_socket - 2173 ftp(7223): -> __sock_create - 2286 ftp(7223): -> sock_alloc_inode - 2737 ftp(7223): <- sock_alloc_inode - 3349 ftp(7223): -> sock_alloc - 3389 ftp(7223): <- sock_alloc - 3417 ftp(7223): <- __sock_create - 4117 ftp(7223): -> sock_create - 4160 ftp(7223): <- sock_create - 4301 ftp(7223): -> sock_map_fd - 4644 ftp(7223): -> sock_map_file - 4699 ftp(7223): <- sock_map_file - 4715 ftp(7223): <- sock_map_fd - 4732 ftp(7223): <- sys_socket - 4775 ftp(7223): <- sys_socketcall - + +0 ftp(7223): -> sys_socketcall +1159 ftp(7223): -> sys_socket +2173 ftp(7223): -> __sock_create +2286 ftp(7223): -> sock_alloc_inode +2737 ftp(7223): <- sock_alloc_inode +3349 ftp(7223): -> sock_alloc +3389 ftp(7223): <- sock_alloc +3417 ftp(7223): <- __sock_create +4117 ftp(7223): -> sock_create +4160 ftp(7223): <- sock_create +4301 ftp(7223): -> sock_map_fd +4644 ftp(7223): -> sock_map_file +4699 ftp(7223): <- sock_map_file +4715 ftp(7223): <- sock_map_fd +4732 ftp(7223): <- sys_socket +4775 ftp(7223): <- sys_socketcall + This sample output contains the following information: @@ -1073,15 +1073,15 @@ probe timer.s(4) to it. For example: - - targetexample.stp - - probe syscall.* { - if (pid() == target()) - printf("%s/n", name) - } - - + +targetexample.stp + +probe syscall.* { + if (pid() == target()) + printf("%s/n", name) +} + + When is run with the argument diff --git a/doc/SystemTap_Beginners_Guide/en-US/Understanding_How_SystemTap_Works.xml b/doc/SystemTap_Beginners_Guide/en-US/Understanding_How_SystemTap_Works.xml index 4e61e247..d9fe6ab4 100644 --- a/doc/SystemTap_Beginners_Guide/en-US/Understanding_How_SystemTap_Works.xml +++ b/doc/SystemTap_Beginners_Guide/en-US/Understanding_How_SystemTap_Works.xml @@ -53,7 +53,7 @@ expiration, session termination, etc. A handler is a series of script language statements that specify the work to be done whenever the event occurs. This work normally includes extracting data from the event context, - storing them into internal variables, or printing results. + storing them into internal variables, and printing results.
-- cgit From 1179271f9a422edf543178d2d02d2bf38334e697 Mon Sep 17 00:00:00 2001 From: William Cohen Date: Mon, 15 Dec 2008 14:34:14 -0500 Subject: Clarify optional else clause. --- doc/SystemTap_Beginners_Guide/en-US/ScriptConstructs.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'doc/SystemTap_Beginners_Guide') diff --git a/doc/SystemTap_Beginners_Guide/en-US/ScriptConstructs.xml b/doc/SystemTap_Beginners_Guide/en-US/ScriptConstructs.xml index 2550efce..89334eff 100644 --- a/doc/SystemTap_Beginners_Guide/en-US/ScriptConstructs.xml +++ b/doc/SystemTap_Beginners_Guide/en-US/ScriptConstructs.xml @@ -177,7 +177,8 @@ The statement1 is executed if the condition expression is non-zero. The statement2 is executed if the condition -expression is zero. The else is optional. Both +expression is zero. The else clause +(else statement2)is optional. Both statement1 and statement2 can be statement blocks. -- cgit From 16da491f985baaa0bfbdc9cd0098d508534bf75b Mon Sep 17 00:00:00 2001 From: William Cohen Date: Mon, 15 Dec 2008 14:52:52 -0500 Subject: Minor edits in associative array sections. --- doc/SystemTap_Beginners_Guide/en-US/Array-Operations.xml | 8 ++++---- doc/SystemTap_Beginners_Guide/en-US/Arrays.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'doc/SystemTap_Beginners_Guide') diff --git a/doc/SystemTap_Beginners_Guide/en-US/Array-Operations.xml b/doc/SystemTap_Beginners_Guide/en-US/Array-Operations.xml index bf496321..00a8673c 100644 --- a/doc/SystemTap_Beginners_Guide/en-US/Array-Operations.xml +++ b/doc/SystemTap_Beginners_Guide/en-US/Array-Operations.xml @@ -505,7 +505,7 @@ probe timer.s(3) } -This foreach statement instructs the script to process the elements in the array reads in descending order (of associated value). The limit 10 option instructs the script to only process the first ten elements in the array (i.e. the first 10, starting with the highest value). +This foreach statement instructs the script to process the elements in the array reads in descending order (of associated value). The limit 10 option instructs the foreach to only process the first ten iterations (i.e. print the first 10, starting with the highest value).
@@ -665,7 +665,7 @@ probe vfs.read probe timer.s(3) { printf("=======\n") - foreach (count in reads+) + foreach (count in reads-) printf("%s : %d \n", count, reads[count]) delete reads } @@ -673,7 +673,7 @@ probe timer.s(3) probe end { printf("TOTALS\n") - foreach (total in totalreads+) + foreach (total in totalreads-) printf("%s : %d \n", total, totalreads[total]) } @@ -788,7 +788,7 @@ probe timer.s(3) -if([index_expression] in array_name) +if([index_expression] in array_name) statement To illustrate this, consider the following example: diff --git a/doc/SystemTap_Beginners_Guide/en-US/Arrays.xml b/doc/SystemTap_Beginners_Guide/en-US/Arrays.xml index ac320fcd..3d3dec01 100644 --- a/doc/SystemTap_Beginners_Guide/en-US/Arrays.xml +++ b/doc/SystemTap_Beginners_Guide/en-US/Arrays.xml @@ -161,7 +161,7 @@ foo["harry"] = 25 -You can specify up to 5 index expressons in an array statement, each one delimited by a comma (,). This is useful if you wish to have a key that contains multiple pieces of information. The following line from uses 5 elements for the key: process ID, executable name, user ID, parent ID, and string "W". It associates the value of devname with that key. +You can specify up to 5 index expressons in an array statement, each one delimited by a comma (,). This is useful if you wish to have a key that contains multiple pieces of information. The following line from uses 5 elements for the key: process ID, executable name, user ID, parent process ID, and string "W". It associates the value of devname with that key. device[pid(),execname(),uid(),ppid(),"W"] = devname -- cgit From b3234491c1bf5e845a16f33f6f2c4dffd2bf6a77 Mon Sep 17 00:00:00 2001 From: William Cohen Date: Mon, 15 Dec 2008 16:14:05 -0500 Subject: Minor editing for example scripts. --- .../en-US/Useful_Scripts-inodewatch.xml | 11 +++++++---- .../en-US/Useful_Scripts-sockettrace.xml | 2 +- .../en-US/Useful_Scripts-traceio2.xml | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) (limited to 'doc/SystemTap_Beginners_Guide') diff --git a/doc/SystemTap_Beginners_Guide/en-US/Useful_Scripts-inodewatch.xml b/doc/SystemTap_Beginners_Guide/en-US/Useful_Scripts-inodewatch.xml index 098524ae..47cc4e16 100644 --- a/doc/SystemTap_Beginners_Guide/en-US/Useful_Scripts-inodewatch.xml +++ b/doc/SystemTap_Beginners_Guide/en-US/Useful_Scripts-inodewatch.xml @@ -59,7 +59,8 @@ no script in examples need to add references to sources/man pages that explain how "dev_nr = $file->f_dentry->d_inode->i_sb->s_dev" and "($1 << 20 | $2)". - takes the following information about the file as an argument: + takes the following information about the +file as arguments on the command line: script examples file device number (integer format) @@ -81,7 +82,9 @@ no script in examples - The file's device number, in integer format. When this is passed to the script as the first argument, be sure to replace any 0 with a space. + The file's major device number. + + The file's minor device number. The file's inode number. @@ -121,9 +124,9 @@ no script in examples examples of SystemTap scripts -805 is the device number, while 1078319 is the inode number. To start monitoring /etc/crontab, run stap inodewatch.stp 8 5 1078319. +805 is the base-16 (hexadecimal) device number. The lower two digits are the minor device number and the upper digits are the major number. 1078319 is the inode number. To start monitoring /etc/crontab, run stap inodewatch.stp 0x8 0x05 1078319 (The 0x prefixes indicate base-16 values. -The output of this command contains the name and ID of any process performing a read/write, the function it is performing (i.e. vfs_read or vfs_write), the device number (in hex format), and the inode number. contains the output of stap inodewatch.stp 8 5 1078319 (when cat /etc/crontab is executed while the script is running) : +The output of this command contains the name and ID of any process performing a read/write, the function it is performing (i.e. vfs_read or vfs_write), the device number (in hex format), and the inode number. contains the output of stap inodewatch.stp 0x8 0x05 1078319 (when cat /etc/crontab is executed while the script is running) : diff --git a/doc/SystemTap_Beginners_Guide/en-US/Useful_Scripts-sockettrace.xml b/doc/SystemTap_Beginners_Guide/en-US/Useful_Scripts-sockettrace.xml index 9a9e1c55..6e913b48 100644 --- a/doc/SystemTap_Beginners_Guide/en-US/Useful_Scripts-sockettrace.xml +++ b/doc/SystemTap_Beginners_Guide/en-US/Useful_Scripts-sockettrace.xml @@ -51,7 +51,7 @@ socket-trace.stp - + diff --git a/doc/SystemTap_Beginners_Guide/en-US/Useful_Scripts-traceio2.xml b/doc/SystemTap_Beginners_Guide/en-US/Useful_Scripts-traceio2.xml index 4fc7ecc2..7451de98 100644 --- a/doc/SystemTap_Beginners_Guide/en-US/Useful_Scripts-traceio2.xml +++ b/doc/SystemTap_Beginners_Guide/en-US/Useful_Scripts-traceio2.xml @@ -50,7 +50,7 @@ - traceio2-simple.stp + traceio2.stp -- cgit From b1a80a41d336daa1501f56f73558806f15231f3c Mon Sep 17 00:00:00 2001 From: William Cohen Date: Mon, 15 Dec 2008 16:28:41 -0500 Subject: Minor edits error chapter. --- doc/SystemTap_Beginners_Guide/en-US/Errors.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'doc/SystemTap_Beginners_Guide') diff --git a/doc/SystemTap_Beginners_Guide/en-US/Errors.xml b/doc/SystemTap_Beginners_Guide/en-US/Errors.xml index 910ff510..62e89580 100644 --- a/doc/SystemTap_Beginners_Guide/en-US/Errors.xml +++ b/doc/SystemTap_Beginners_Guide/en-US/Errors.xml @@ -101,7 +101,7 @@ replicate? - The following invalid SystemTap script is missing the its probe + The following invalid SystemTap script is missing its probe handlers: @@ -473,8 +473,9 @@ probe syscall.open foo refers to. This usually means that SystemTap could not find a match for foo in the - tapset library. The N refers to the column - the error occurred in. + tapset library. The N refers to the + line and column of + the error. how to explain N in previous? "The divergence from the “tree” of probe point namespace is at position N (starting with zero at left)." (from tutorial) -- cgit From 70be2c5b7a1ae10d23bb092a04031a119136aa47 Mon Sep 17 00:00:00 2001 From: ddomingo Date: Tue, 16 Dec 2008 12:06:35 +1000 Subject: corrected index entries as per wcohen --- doc/SystemTap_Beginners_Guide/en-US/Scripts.xml | 100 ++++++++++++------------ 1 file changed, 50 insertions(+), 50 deletions(-) (limited to 'doc/SystemTap_Beginners_Guide') diff --git a/doc/SystemTap_Beginners_Guide/en-US/Scripts.xml b/doc/SystemTap_Beginners_Guide/en-US/Scripts.xml index bb71625e..88aa42ab 100644 --- a/doc/SystemTap_Beginners_Guide/en-US/Scripts.xml +++ b/doc/SystemTap_Beginners_Guide/en-US/Scripts.xml @@ -581,7 +581,7 @@ probe begin exit() - Handlers + functions SystemTap scripts continue to run until the @@ -732,20 +732,20 @@ hald(2360) open functions - handler functions - tid() + tid() + - handler functions - Handlers - tid() + functions + tid() + tid() - Handlers - handler functions + functions + The ID of the current thread. @@ -757,20 +757,20 @@ hald(2360) open functions - handler functions - uid() + + uid() - + uid() - Handlers - handler functions + functions + The ID of the current user. @@ -781,20 +781,20 @@ hald(2360) open functions - handler functions - cpu() + + cpu() - + cpu() - Handlers - handler functions + functions + The current CPU number. @@ -805,20 +805,20 @@ hald(2360) open functions - handler functions - gettimeofday_s() + + gettimeofday_s() - + gettimeofday_s() - Handlers - handler functions + functions + The number of seconds since UNIX epoch (January 1, 1970). @@ -830,20 +830,20 @@ hald(2360) open functions - handler functions - ctime() + + ctime() - + ctime() - Handlers - handler functions + functions + Convert number of seconds since UNIX epoch to date. @@ -865,20 +865,20 @@ hald(2360) open functions - handler functions - pp() + + pp() - + pp() - Handlers - handler functions + functions + A string describing the probe point currently being handled. @@ -897,20 +897,20 @@ hald(2360) open functions - handler functions - thread_indent() + + thread_indent() - + thread_indent() - Handlers - handler functions + functions + This particular function is quite useful, providing you with a way @@ -1047,20 +1047,20 @@ probe kernel.function("*@net/socket.c").return functions - handler functions - target() + + target() - + target() - Handlers - handler functions + functions + Used in conjunction with stap -- cgit