The following are examples of running the script tcl_ins.d Here it traces as Code/Tcl/func_slow.tcl executes. # tcl_ins.d Tracing... Hit Ctrl-C to end. ^C PID TYPE NAME COUNT 16005 inst foreach_start4 1 16005 inst jumpTrue1 1 16005 inst lappendScalar1 1 16005 inst list 1 16005 inst strneq 1 16005 inst beginCatch4 2 16005 inst dup 2 16005 inst endCatch 2 16005 inst eq 2 16005 inst land 2 16005 inst storeScalarStk 2 16005 inst foreach_step4 4 16005 inst not 4 16005 inst loadArrayStk 5 16005 inst streq 7 16005 inst tryCvtToNumeric 8 16005 inst jumpFalse1 12 16005 inst loadScalarStk 13 16005 inst jump1 14 16005 inst pop 18 16005 inst invokeStk1 53 16005 inst add 600000 16005 inst concat1 600000 16005 inst exprStk 600000 16005 inst lt 600007 16005 inst storeScalar1 600016 16005 inst done 600021 16005 inst loadScalar1 1200020 16005 inst push1 4200193 It is showing the instructions called by Tcl as the program executes. The larger counts toward the bottom of the display are from the looping construct used in Code/Tcl/func_slow.tcl. Tracing the instructions is quite low-level and slow the target application considerably and would probably be used only as a last resort if you have no other indication of why CPUs are busy. |