@args --debugger

:c at the root repl is not allowed since no debugger is running yet
  nix-repl> :c
  error: unknown command ':c'

:c and other commands become available once a debugger starts
  nix-repl> with {}; a
  error: undefined variable 'a'
         at «string»:1:10:
              1| with {}; a
               |          ^

  nix-repl> :?
  The following commands are available:

    <expr>                       Evaluate and print expression
    <x> = <expr>                 Bind expression to variable
    :a, :add <expr>              Add attributes from resulting set to scope
    :b <expr>                    Build a derivation
    :bl <expr>                   Build a derivation, creating GC roots in the
                                 working directory
    :e, :edit <expr>             Open package or function in $EDITOR
    :i <expr>                    Build derivation, then install result into
                                 current profile
    :l, :load <path>             Load Nix expression and add it to scope
    :lf, :load-flake <ref>       Load Nix flake and add it to scope
    :p, :print <expr>            Evaluate and print expression recursively
                                 Strings are printed directly, without escaping.
    :q, :quit                    Exit nix-repl
    :r, :reload                  Reload all files
    :sh <expr>                   Build dependencies of derivation, then start
                                 nix-shell
    :t <expr>                    Describe result of evaluation
    :u <expr>                    Build derivation, then start nix-shell
    :doc <expr>                  Show documentation for the provided function (experimental lambda support)
    :log <expr | .drv path>      Show logs for a derivation
    :te, :trace-enable [bool]    Enable, disable or toggle showing traces for
                                 errors
    :?, :help                    Brings up this help menu

          Debug mode commands
    :env             Show env stack
    :bt, :backtrace  Show trace stack
    :st              Show current trace
    :st <idx>        Change to another trace in the stack
    :c, :continue    Go until end of program, exception, or builtins.break
    :s, :step        Go one step

we can now inspect state
  nix-repl> :bt
  0: error: undefined variable 'a'
  «string»:1:10

       1| with {}; a
        |          ^

  1: error: Fake frame for debugging purposes
  «string»:1:10

       1| with {}; a
        |          ^

and resume execution
  nix-repl> :c
  error: undefined variable 'a'
         at «string»:1:10:
              1| with {}; a
               |          ^

the debugger is once again disabled
  nix-repl> :c
  error: unknown command ':c'

leaving the debugger from a toplevel error and entering it again doesn't leave old frames visible
  nix-repl> with {}; a
  error: undefined variable 'a'
         at «string»:1:10:
              1| with {}; a
               |          ^

  nix-repl> :s
  error: undefined variable 'a'
         at «string»:1:10:
              1| with {}; a
               |          ^

  nix-repl> with {}; b
  error: undefined variable 'b'
         at «string»:1:10:
              1| with {}; b
               |          ^

  nix-repl> :bt

  0: error: undefined variable 'b'
  «string»:1:10

       1| with {}; b
        |          ^

  1: error: Fake frame for debugging purposes
  «string»:1:10

       1| with {}; b
        |          ^

exiting from here prints the error
  nix-repl> :q
  error: undefined variable 'b'
         at «string»:1:10:
              1| with {}; b
               |          ^
