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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
https://github.com/NixOS/nix/pull/9917 (Enter debugger more reliably in let expressions and function calls)

This test ensures that continues don't skip opportunities to enter the debugger.
@args --debugger
  trace: before outer break
  info: breakpoint reached

  nix-repl> :c
  trace: before inner break
  info: breakpoint reached

  nix-repl> :bt

  6: while evaluating the file '$TEST_DATA/regression_9917.nix':
  $TEST_DATA/regression_9917.nix:1:1

       1| let
        | ^
       2|   a = builtins.trace "before inner break" (

  5: while evaluating a 'let' expression
  $TEST_DATA/regression_9917.nix:1:1

       1| let
        | ^
       2|   a = builtins.trace "before inner break" (

  4: while calling a function
  $TEST_DATA/regression_9917.nix:5:7

       4|   );
       5|   b = builtins.trace "before outer break" (
        |       ^
       6|     builtins.break a

  3: while calling a function
  $TEST_DATA/regression_9917.nix:6:5

       5|   b = builtins.trace "before outer break" (
       6|     builtins.break a
        |     ^
       7|   );

  2: while calling a function
  $TEST_DATA/regression_9917.nix:2:7

       1| let
       2|   a = builtins.trace "before inner break" (
        |       ^
       3|     builtins.break { msg = "hello"; }

  1: while calling a function
  $TEST_DATA/regression_9917.nix:3:5

       2|   a = builtins.trace "before inner break" (
       3|     builtins.break { msg = "hello"; }
        |     ^
       4|   );

  0: error: breakpoint reached
  $TEST_DATA/regression_9917.nix:3:5

       2|   a = builtins.trace "before inner break" (
       3|     builtins.break { msg = "hello"; }
        |     ^
       4|   );

  nix-repl> :c

  nix-repl> msg
  "hello"