To try it out, first create an example trace (from the top-level directory):
$ make
$ ./a.out test_1
This command will save a trace of its execution in a file called last_run
.
The trace consists of a series of lines, each starting with an integer depth
and a single-word 'label', followed by a colon and whitespace.
Now browse this trace:
./browse_trace/browse_trace last_run
You should now find yourself in a UI showing a subsequence of lines from the trace, each line starting with a numeric depth, and ending with a parenthetical count of trace lines hidden after it with greater depths.
For example, this line:
2 app: line1 (30)
indicates that it was logged with depth 2, and that 30 following lines have been hidden at a depth greater than 2.
(As an experiment, hidden counts of 1000 or more are highlighted in red.)
The UI provides the following hotkeys:
q
or ctrl-c
: Quit.
Enter
: 'Zoom into' this line. Expand lines hidden after it that were at
the next higher level.
Backspace
: 'Zoom out' on a line after zooming in, collapsing lines below
expanded by some series of Enter
commands.
j
or down-arrow
: Move/scroll cursor down one line.
k
or up-arrow
: Move/scroll cursor up one line.
J
or ctrl-f
or page-down
: Scroll cursor down one page.
K
or ctrl-b
or page-up
: Scroll cursor up one page.
h
or left-arrow
: Scroll cursor left one character.
l
or right-arrow
: Scroll cursor right one character.
H
: Scroll cursor left one screen-width.
L
: Scroll cursor right one screen-width.
g
or home
: Move cursor to start of trace.
G
or end
: Move cursor to end of trace.
t
: Move cursor to top line on screen.
c
: Move cursor to center line on screen.
b
: Move cursor to bottom line on screen.
T
: Scroll line at cursor to top of screen.
/
: Search forward for a pattern.
?
: Search backward for a pattern.
n
: Repeat the previous /
or ?
.
N
: Repeat the previous /
or ?
in the opposite direction.
After hitting /
, the mini-editor on the bottom-most line supports the
following hotkeys:
Enter
: search for the pattern.Esc
or ctrl-c
: cancel the current search, setting the screen back
to its state before the search.left-arrow
: move cursor left.right-arrow
: move cursor right.ctrl-a
or home
: move cursor to start of search pattern.ctrl-e
or end
: move cursor to end of search pattern.ctrl-u
: clear search pattern before cursorctrl-k
: clear search pattern at and after cursor.
and *
.]
?