1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
@args --debugger
we enter a debugger via builtins.break in the input file.

  info: breakpoint reached

causing another debugger even should not nest, but simply
print the error, skip the breakpoint, etc as appropriate.

  nix-repl> "values show"
  "values show"

  nix-repl> builtins.break 2
  2

  nix-repl> builtins.throw "foo"
  error:
         … caused by explicit throw
           at «string»:1:1:
              1| builtins.throw "foo"
               | ^

         error: foo

  nix-repl> assert false; 2
  error: assertion failed
         at «string»:1:1:
              1| assert false; 2
               | ^

exiting the debug frame should allow another to open.

  nix-repl> :c

  nix-repl> builtins.throw "bar"
  error: bar

and once again, more breakpoints are ignored.

  nix-repl> builtins.break 3
  3
  error: bar