A debugging helper that lets you zoom in/out on a trace.
To try it out, first create an example trace (from the top-level
./mu --trace nqueens.mu
This command will save a trace of its execution in a file called
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:
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:
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
down-arrow: Move cursor down one line.
up-arrow: Move cursor up one line.
page-down: Scroll cursor down one page.
page-up: Scroll cursor up one page.
left-arrow: Scroll cursor left one character.
right-arrow: Scroll cursor right one character.
H: Scroll cursor left one screen-width.
L: Scroll cursor right one screen-width.
home: Move cursor to start of trace.
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
N: Repeat the previous
?in the opposite direction.
/, the mini-editor on the bottom-most line supports the
- ascii characters: add the key to the pattern.
Enter: search for the pattern.
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.
home: move cursor to start of search pattern.
end: move cursor to end of search pattern.
ctrl-u: clear search pattern before cursor
ctrl-k: clear search pattern at and after cursor
- Simple regular expression search:
- Expand into lower depths as necessary when searching.
- Zoom out everything.
- Zoom out lines around the cursor to the highest (or specified) depth.
Maybe a number followed by