Metadebugger command reference

You can find the list of MDB commands here.

  • evaluate [-full|-profile] [-nocache] [<type>|-]
    Evaluate and start debugging a new metaprogram.
    Evaluating a metaprogram using the -full qualifier will expand all Memoization events.

Evaluating a metaprogram using the -profile qualifier will enable profile mode.

Instead of <type>, evaluate can be called with -, in which case the whole environment is being debugged not just a single type expression.

If called without <type> or -, then the last evaluated metaprogram will be reevaluated.

Previous breakpoints are cleared.

Evaluating a metaprogram using the -nocache qualifier will disable caching of the events, which will prevent stepping backwards, predicting how many times a breakpoint will be hit and displaying forwardtrace.

Unlike metashell, evaluate doesn't use metashell::format to avoid cluttering the debugged metaprogram with unrelated code. If you need formatting, you can explicitly enter metashell::format< <type> >::type for the same effect.

  • step [over|out] [n]
    Step the program.
    Argument n means step n times. n defaults to 1 if not specified. Negative n means step the program backwards.

step over is an alias for next. Use of the out qualifier will jump out of the current instantiation frame. Similarly to next, step out -1 is not always the inverse of step out.

  • next [n]
    Jump over to the next instantiation skipping sub instantiations.
    Argument n means jump n times. n defaults to 1 if not specified. Negative n means step the program backwards.

Please note that next -1 is not always the inverse of next. In particular when there are no more instantiations that got instantiated by the current parent, then next will behave like a normal step, and will step out of one or more instantiation frames.

step over is an alias for next.

  • rbreak <regex>
    Add breakpoint for all types matching <regex>.

  • break list
    List breakpoints.

  • continue [n]
    Continue program being debugged.
    The program is continued until the nth breakpoint or the end of the program is reached. n defaults to 1 if not specified. Negative n means continue the program backwards.

  • finish
    Finish program being debugged.
    The program is continued until the end ignoring any breakpoints.

  • forwardtrace|ft [n]
    Print forwardtrace from the current point.
    The n specifier limits the depth of the trace. If n is not specified, then the trace depth is unlimited.

  • backtrace|bt
    Print backtrace from the current point.

  • frame|f n
    Inspect the nth frame of the current backtrace.

  • help [<command>]
    Show help for commands.
    If is not specified, show a list of all available commands.

  • quit
    Quit metadebugger.