mirror of
https://github.com/Stichting-MINIX-Research-Foundation/netbsd.git
synced 2025-09-10 15:46:33 -04:00
189 lines
11 KiB
Plaintext
189 lines
11 KiB
Plaintext
The following are examples of pl_flowinfo.d.
|
|
|
|
This is a simple script to trace the flow of Perl subroutines (functions).
|
|
Here it traces the example program, Code/Perl/func_abc.pl.
|
|
|
|
# pl_flowinfo.d
|
|
C PID DELTA(us) FILE:LINE TYPE -- SUB
|
|
0 305127 2 func_abc.pl:15 sub -> func_a
|
|
0 305127 1008776 func_abc.pl:9 sub -> func_b
|
|
0 305127 1010019 func_abc.pl:4 sub -> func_c
|
|
0 305127 1009979 func_abc.pl:4 sub <- func_c
|
|
0 305127 26 func_abc.pl:9 sub <- func_b
|
|
0 305127 9 func_abc.pl:15 sub <- func_a
|
|
^C
|
|
|
|
As each subroutine is entered, the third column is indented by 2 spaces. This
|
|
shows which subroutine is calling who - the output abovebegins by showing that
|
|
func_a() began, and then called func_b().
|
|
|
|
The DELTA(us) column shows time from that line to the previous line, and
|
|
so can be a bit tricky to read. For example, the second line of data output
|
|
(skipping the header) reads as "the time from func_a() beginning to
|
|
func_b() beginning was 1008776 us, or 1.01 seconds".
|
|
|
|
The LINE column shows the line in the file what was being executed. Refer
|
|
to the source program to see what this line refers to.
|
|
|
|
If the output looks shuffled, check the CPU "C" column - if it changes,
|
|
then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
|
|
details and suggested workarounds.
|
|
|
|
See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
|
|
|
|
|
|
|
|
The following traces a Perl network interface statistics tool, "nicstat"
|
|
version 0.99,
|
|
|
|
# pl_flowinfo.d
|
|
C PID DELTA(us) FILE:LINE TYPE -- SUB
|
|
0 305132 2 nicstat:83 sub -> BEGIN
|
|
0 305132 444 strict.pm:12 sub -> bits
|
|
0 305132 34 strict.pm:12 sub <- bits
|
|
0 305132 32 strict.pm:28 sub -> import
|
|
0 305132 22 strict.pm:28 sub <- import
|
|
0 305132 8 nicstat:83 sub <- BEGIN
|
|
0 305132 26 nicstat:84 sub -> BEGIN
|
|
0 305132 2339 Exporter.pm:30 sub -> import
|
|
0 305132 83 Exporter.pm:30 sub <- import
|
|
0 305132 14 nicstat:84 sub <- BEGIN
|
|
0 305132 27 nicstat:85 sub -> BEGIN
|
|
0 305132 205 Kstat.pm:34 sub -> BEGIN
|
|
0 305132 11 strict.pm:28 sub -> import
|
|
0 305132 11 strict.pm:28 sub <- import
|
|
0 305132 8 Kstat.pm:34 sub <- BEGIN
|
|
0 305132 23 Kstat.pm:35 sub -> BEGIN
|
|
0 305132 187 DynaLoader.pm:18 sub -> BEGIN
|
|
0 305132 73 vars.pm:3 sub -> BEGIN
|
|
0 305132 9 vars.pm:3 sub <- BEGIN
|
|
0 305132 34 vars.pm:7 sub -> BEGIN
|
|
0 305132 470 warnings.pm:134 sub -> BEGIN
|
|
0 305132 598 warnings.pm:134 sub <- BEGIN
|
|
0 305132 2151 register.pm:37 sub -> import
|
|
0 305132 23 register.pm:28 sub -> mkMask
|
|
0 305132 13 register.pm:28 sub <- mkMask
|
|
0 305132 53 register.pm:28 sub -> mkMask
|
|
0 305132 11 register.pm:28 sub <- mkMask
|
|
0 305132 11 register.pm:37 sub <- import
|
|
0 305132 8 vars.pm:7 sub <- BEGIN
|
|
0 305132 28 vars.pm:8 sub -> BEGIN
|
|
0 305132 9 strict.pm:28 sub -> import
|
|
0 305132 8 strict.pm:12 sub -> bits
|
|
0 305132 13 strict.pm:12 sub <- bits
|
|
0 305132 9 strict.pm:28 sub <- import
|
|
0 305132 8 vars.pm:8 sub <- BEGIN
|
|
0 305132 294 vars.pm:11 sub -> import
|
|
0 305132 52 vars.pm:11 sub <- import
|
|
0 305132 8 DynaLoader.pm:18 sub <- BEGIN
|
|
0 305132 48 DynaLoader.pm:25 sub -> BEGIN
|
|
0 305132 97 Config.pm:5 sub -> BEGIN
|
|
0 305132 9 strict.pm:28 sub -> import
|
|
0 305132 9 strict.pm:28 sub <- import
|
|
0 305132 8 Config.pm:5 sub <- BEGIN
|
|
0 305132 134 Config.pm:31 sub -> BEGIN
|
|
0 305132 9 strict.pm:33 sub -> unimport
|
|
0 305132 8 strict.pm:12 sub -> bits
|
|
0 305132 11 strict.pm:12 sub <- bits
|
|
0 305132 16 strict.pm:33 sub <- unimport
|
|
0 305132 8 Config.pm:31 sub <- BEGIN
|
|
0 305132 343 Config.pm:60 sub -> TIEHASH
|
|
0 305132 10 Config.pm:60 sub <- TIEHASH
|
|
0 305132 44 Config.pm:25 sub -> import
|
|
0 305132 18 Config.pm:25 sub <- import
|
|
0 305132 9 DynaLoader.pm:25 sub <- BEGIN
|
|
0 305132 1301 AutoLoader.pm:3 sub -> BEGIN
|
|
0 305132 11 strict.pm:28 sub -> import
|
|
0 305132 10 strict.pm:28 sub <- import
|
|
0 305132 9 AutoLoader.pm:3 sub <- BEGIN
|
|
0 305132 22 AutoLoader.pm:4 sub -> BEGIN
|
|
0 305132 9 AutoLoader.pm:4 sub <- BEGIN
|
|
0 305132 89 AutoLoader.pm:14 sub -> BEGIN
|
|
0 305132 13 AutoLoader.pm:14 sub <- BEGIN
|
|
0 305132 375 AutoLoader.pm:95 sub -> BEGIN
|
|
0 305132 9 strict.pm:33 sub -> unimport
|
|
0 305132 8 strict.pm:12 sub -> bits
|
|
0 305132 11 strict.pm:12 sub <- bits
|
|
0 305132 9 strict.pm:33 sub <- unimport
|
|
0 305132 8 AutoLoader.pm:95 sub <- BEGIN
|
|
0 305132 203 AutoLoader.pm:128 sub -> BEGIN
|
|
0 305132 9 strict.pm:33 sub -> unimport
|
|
0 305132 8 strict.pm:12 sub -> bits
|
|
0 305132 11 strict.pm:12 sub <- bits
|
|
0 305132 9 strict.pm:33 sub <- unimport
|
|
0 305132 8 AutoLoader.pm:128 sub <- BEGIN
|
|
0 305132 220 AutoLoader.pm:173 sub -> BEGIN
|
|
0 305132 9 strict.pm:33 sub -> unimport
|
|
0 305132 8 strict.pm:12 sub -> bits
|
|
0 305132 10 strict.pm:12 sub <- bits
|
|
0 305132 9 strict.pm:33 sub <- unimport
|
|
0 305132 8 AutoLoader.pm:173 sub <- BEGIN
|
|
0 305132 103 Config.pm:52 sub -> FETCH
|
|
0 305132 12 Config.pm:52 sub <- FETCH
|
|
0 305132 16 Config.pm:52 sub -> FETCH
|
|
0 305132 9 Config.pm:52 sub <- FETCH
|
|
0 305132 11 Config.pm:52 sub -> FETCH
|
|
0 305132 9 Config.pm:52 sub <- FETCH
|
|
0 305132 11 Config.pm:52 sub -> FETCH
|
|
0 305132 9 Config.pm:52 sub <- FETCH
|
|
0 305132 95 Kstat.pm:35 sub <- BEGIN
|
|
0 305132 29 Kstat.pm:36 sub -> BEGIN
|
|
0 305132 10 vars.pm:11 sub -> import
|
|
0 305132 33 vars.pm:11 sub <- import
|
|
0 305132 8 Kstat.pm:36 sub <- BEGIN
|
|
0 305132 56 DynaLoader.pm:133 sub -> bootstrap
|
|
0 305132 314 DynaLoader.pm:48 sub -> dl_load_flags
|
|
0 305132 11 DynaLoader.pm:48 sub <- dl_load_flags
|
|
0 305132 1113 DynaLoader.pm:133 sub <- bootstrap
|
|
0 305132 41 nicstat:85 sub <- BEGIN
|
|
0 305132 6102 Std.pm:219 sub -> getopts
|
|
0 305132 52 Exporter.pm:30 sub -> import
|
|
0 305132 40 Exporter.pm:30 sub <- import
|
|
0 305132 22 Std.pm:219 sub <- getopts
|
|
0 305132 24 nicstat:264 sub -> find_nets
|
|
0 305132 79662 nicstat:264 sub <- find_nets
|
|
0 305132 420 nicstat:304 sub -> fetch_net_data
|
|
0 305132 43871 nicstat:304 sub <- fetch_net_data
|
|
0 305132 479 nicstat:372 sub -> print_neat
|
|
0 305132 150 nicstat:372 sub <- print_neat
|
|
0 305132 10 nicstat:372 sub -> print_neat
|
|
0 305132 220 nicstat:372 sub <- print_neat
|
|
0 305132 10 nicstat:372 sub -> print_neat
|
|
0 305132 126 nicstat:372 sub <- print_neat
|
|
0 305132 10 nicstat:372 sub -> print_neat
|
|
0 305132 125 nicstat:372 sub <- print_neat
|
|
0 305132 10 nicstat:372 sub -> print_neat
|
|
0 305132 157 nicstat:372 sub <- print_neat
|
|
0 305132 10 nicstat:372 sub -> print_neat
|
|
0 305132 171 nicstat:372 sub <- print_neat
|
|
0 305132 343 nicstat:372 sub -> print_neat
|
|
0 305132 128 nicstat:372 sub <- print_neat
|
|
0 305132 10 nicstat:372 sub -> print_neat
|
|
0 305132 157 nicstat:372 sub <- print_neat
|
|
0 305132 9 nicstat:372 sub -> print_neat
|
|
0 305132 125 nicstat:372 sub <- print_neat
|
|
0 305132 9 nicstat:372 sub -> print_neat
|
|
0 305132 123 nicstat:372 sub <- print_neat
|
|
0 305132 9 nicstat:372 sub -> print_neat
|
|
0 305132 160 nicstat:372 sub <- print_neat
|
|
0 305132 10 nicstat:372 sub -> print_neat
|
|
0 305132 124 nicstat:372 sub <- print_neat
|
|
0 305132 342 nicstat:372 sub -> print_neat
|
|
0 305132 126 nicstat:372 sub <- print_neat
|
|
0 305132 10 nicstat:372 sub -> print_neat
|
|
0 305132 123 nicstat:372 sub <- print_neat
|
|
0 305132 10 nicstat:372 sub -> print_neat
|
|
0 305132 156 nicstat:372 sub <- print_neat
|
|
0 305132 10 nicstat:372 sub -> print_neat
|
|
0 305132 153 nicstat:372 sub <- print_neat
|
|
0 305132 10 nicstat:372 sub -> print_neat
|
|
0 305132 123 nicstat:372 sub <- print_neat
|
|
0 305132 9 nicstat:372 sub -> print_neat
|
|
0 305132 123 nicstat:372 sub <- print_neat
|
|
0 305132 3736 Config.pm:63 sub -> DESTROY
|
|
0 305132 32 Config.pm:63 sub <- DESTROY
|
|
|
|
After initialising Perl libraries and modules, the "nicstat" program ran,
|
|
the output matching what was expected from the source.
|
|
|