The following are examples of sh_flow.d. This is a simple script to trace the flow of Bourne shell functions, builtins and external commands. Here it traces the example program, Code/Shell/func_abc.sh. # sh_flow.d C TIME(us) FILE -- NAME 0 3060274370505 func_abc.sh -> func_a 0 3060274370529 func_abc.sh > echo 0 3060274372742 func_abc.sh | sleep 0 3060275381634 func_abc.sh -> func_b 0 3060275381660 func_abc.sh > echo 0 3060275383852 func_abc.sh | sleep 0 3060276391653 func_abc.sh -> func_c 0 3060276391679 func_abc.sh > echo 0 3060276393671 func_abc.sh | sleep 0 3060277401753 func_abc.sh <- func_c 0 3060277401767 func_abc.sh <- func_b 0 3060277401775 func_abc.sh <- func_a ^C As each function is entered, the third column is indented by 2 spaces. This shows which function is calling who - the output abovebegins by showing that func_a() began, and then called func_b(). If the output looks shuffled, check the CPU "C" and "TIME" columns, and post sort based on TIME if necessary. See Notes/ALLflow_notes.txt for important notes about reading flow outputs. The following traces the firefox startup script. # sh_flow.d C TIME(us) FILE -- NAME 0 3060321598138 firefox > test 0 3060321603730 firefox > [ 0 3060321603796 firefox > cd 0 3060321603878 firefox > [ 0 3060321603900 firefox > [ 0 3060321604099 firefox > [ 0 3060321609050 firefox > echo 0 3060321620601 firefox > echo 0 3060321626369 firefox > [ 0 3060321626432 firefox > export 0 3060321626459 firefox -> moz_pis_startstop_scripts 0 3060321626519 firefox > export 0 3060321626966 firefox > [ 0 3060321627031 firefox > . 0 3060321628446 firefox -> moz_spc_verbose_echo 0 3060321628458 firefox > : 0 3060321628467 firefox <- moz_spc_verbose_echo 0 3060321636461 firefox > [ 0 3060321636738 firefox -> moz_spc_verbose_echo 0 3060321636751 firefox > : 0 3060321636760 firefox <- moz_spc_verbose_echo 0 3060321636778 firefox > [ 0 3060321636793 firefox > [ 0 3060321636817 firefox > [ 0 3060321637126 firefox -> moz_spc_verbose_echo 0 3060321637136 firefox > : 0 3060321637143 firefox <- moz_spc_verbose_echo 0 3060321666922 firefox -> moz_spc_verbose_echo 0 3060321666952 firefox > : 0 3060321666964 firefox <- moz_spc_verbose_echo 0 3060321674929 firefox > [ 0 3060321680246 firefox > [ 0 3060321680312 firefox -> moz_spc_verbose_echo 0 3060321680323 firefox > : 0 3060321680331 firefox <- moz_spc_verbose_echo 0 3060321680356 firefox -> moz_spc_verbose_echo 0 3060321680363 firefox > : 0 3060321680370 firefox <- moz_spc_verbose_echo 0 3060321680396 firefox > [ 0 3060321680428 firefox <- moz_pis_startstop_scripts 0 3060321680525 firefox > [ 0 3060321680580 firefox > [ 0 3060321685358 firefox | /usr/lib/firefox/run-mozilla.sh 0 3060321700731 run-mozilla.sh > [ 0 3060321700950 run-mozilla.sh > break 0 3060321703259 run-mozilla.sh > [ 0 3060321703292 run-mozilla.sh > shift 0 3060321703382 run-mozilla.sh > [ 0 3060321703421 run-mozilla.sh > [ 0 3060321703493 run-mozilla.sh > [ 0 3060321703642 run-mozilla.sh > [ 0 3060321703669 run-mozilla.sh > export 0 3060321703706 run-mozilla.sh > [ 0 3060321703725 run-mozilla.sh > [ 0 3060321703857 run-mozilla.sh > [ 0 3060321703880 run-mozilla.sh > export 0 3060321703925 run-mozilla.sh > export 0 3060321703954 run-mozilla.sh > [ 0 3060321703982 run-mozilla.sh -> moz_run_program 0 3060321704013 run-mozilla.sh > [ 0 3060321704049 run-mozilla.sh -> moz_test_binary 0 3060321704065 run-mozilla.sh > [ 0 3060321704097 run-mozilla.sh > [ 0 3060321704127 run-mozilla.sh > return 0 3060321704137 run-mozilla.sh <- moz_test_binary 0 3060321704151 run-mozilla.sh > [ 0 3060321709953 run-mozilla.sh > type 0 3060321724260 run-mozilla.sh > [ 0 3060321724559 run-mozilla.sh > [ 0 3060321724574 run-mozilla.sh > [ 0 3060321727396 run-mozilla.sh | /usr/lib/firefox/firefox-bin 0 3060325513871 run-mozilla.sh > [ 0 3060325513898 run-mozilla.sh > [ 0 3060325513929 run-mozilla.sh > [ 0 3060325513940 run-mozilla.sh <- moz_run_program 0 3060325513967 run-mozilla.sh > exit 0 3060325515113 firefox -> moz_pis_startstop_scripts 0 3060325515189 firefox > export 0 3060325515431 firefox > [ 0 3060325515466 firefox > [ 0 3060325515487 firefox <- moz_pis_startstop_scripts 0 3060325515503 firefox > exit This shows the flow, incluing the handover between the "firefox" script and the "run-mozilla.sh" script. There is a point in the output where flow appears to reverse (at time 3060321709953, with the entry "> type"). This is due to another instance of the run-mozilla.sh script running, which is indistinguishable from the other lines in the output. To confirm this for yourself, add a PID column to the flow script (or use sh_flowinfo.d).