> help # (#): Ignore all arguments and do nothing backend (bak): Print the state of the symbolic backend backtrace (bt): Print the backtrace (AKA stack trace) block (blk): Print the statements in the current block break (b): Set a breakpoint at the entry to a function call (cl): Call a function (must take no arguments and return the unit type) cfg (cg): Print the CFG of a function (the current function if none is provided) clear (cr): Drop the current proof obligations delete (d): Remove a breakpoint done (done): Like `quit`, but only applies when symbolic execution has finished finish (fh): Execute to the end of the current function frame (fr): Print information about the active stack frame help (h): Display help text load (l): Load a Crucible S-expression program from a file location (loc): Print the current program location obligation (o): Print the current proof obligations path-condition (pcond): Print the current path condition prove (p): Prove the current goals quit (q): Exit the debugger register (reg): Print registers (including block/function arguments) run (r): Continue to the next breakpoint or the end of execution secret (.): Maintenance commands, used for testing source (src): Execute a file containing debugger commands step (s): Continue N steps of execution (default: 1) trace (trace): Print the N most recently executed basic blocks (default: 2) usage (u): Display command usage hint > help run run Continue to the next breakpoint or the end of execution. > help register register INT* Print registers (including block/function arguments). When given no arguments, prints all values in scope. Otherwise, prints the values with the given numbers, one per line. The value numbering scheme is based on the structure of Crucible CFGs. A Crucible CFG (function) is made up of *basic blocks*. Each basic block takes a list of arguments. The first block in the function is the *entry* block; the entry block takes the same arguments as the function. Each block contains a number of *statements*, which may define values. The value defined by a statement is in scope for the rest of the block. Values are then numbered as follows: The first argument to the current block is numbered 0. Increasing numbers refer to later arguments. After arguments, higher numbers refer to values defined by statements. > quit Ok