Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

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.