Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
Readme.md
browse_trace
browse_trace.cc
build
clean

Readme.md

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/ directory):

./mu --trace nqueens.mu

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 cursor down one line.

  • k or up-arrow: Move 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:

  • ascii characters: add the key to the pattern.
  • 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 cursor
  • ctrl-k: clear search pattern at and after cursor

wish list

  • Simple regular expression search: . and *.
  • 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 ]?
You can’t perform that action at this time.