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 js_flowtime.d.

This is a simple script to trace the flow of JavaScript functions.
Here it traces the example program, Code/JavaScript/func_clock.html

# js_flowtime.d 
  C TIME(us)         FILE               DELTA(us) -- FUNC
  0 3650523390654    func_clock.html            2 -> start
  0 3650523390721    func_clock.html           67   -> getElementById
  0 3650523390773    func_clock.html           51   <- getElementById
  0 3650523391609    func_clock.html          835   -> func_a
  0 3650523391627    func_clock.html           18     -> getElementById
  0 3650523391651    func_clock.html           23     <- getElementById
  0 3650523409735    func_clock.html        18084     -> func_b
  0 3650523409763    func_clock.html           27       -> getElementById
  0 3650523409795    func_clock.html           32       <- getElementById
  0 3650523445921    func_clock.html        36125       -> func_c
  0 3650523445959    func_clock.html           38         -> getElementById
  0 3650523446004    func_clock.html           44         <- getElementById
  0 3650523500557    func_clock.html        54552       <- func_c
  0 3650523500581    func_clock.html           24     <- func_b
  0 3650523500593    func_clock.html           11   <- func_a
  0 3650523500648    func_clock.html           54   -> setTimeout
  0 3650523500736    func_clock.html           88   <- setTimeout
  0 3650523500749    func_clock.html           12 <- start
^C

The fifth column is indented by 2 spaces to show when a new function begins.
This shows which function is calling which. 

The TIME(us) column shows time since boot.

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
shows that a getElementById function happened 67 microseconds after start.

The FILE column shows file that was being executed.

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.