(CommandList
  children: [
    (C {(typeset)} {(Lit_VarLike "_Dbg_RESTART_COMMAND=") (SQ )})
    (C {(typeset)} {(-i)} {(Lit_VarLike "_Dbg_set_debug=") (0)})
    (C {(typeset)} {(Lit_VarLike "_Dbg_stop_reason=") (SQ )})
    (C {(typeset)} {(-i)} {(Lit_VarLike "_Dbg_restore_debug_trap=") (1)})
    (C {(typeset)} {(-i)} {(Lit_VarLike "_Dbg_inside_skip=") (0)})
    (C {(typeset)} {(-i)} {(Lit_VarLike "_Dbg_continue_rc=") (-1)})
    (FuncDef
      name: _Dbg_debug_trap_handler
      body: 
        (BraceGroup
          children: [
            (C {(typeset)} {(-i)} {(Lit_VarLike "_Dbg_debugged_exit_code=") ($ VSub_QMark "$?")})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_old_set_opts)
                  op: Equal
                  rhs: {($ VSub_Hyphen "$-")}
                  spids: [220]
                )
              ]
              spids: [220]
            )
            (SimpleCommand
              words: [{(shopt)} {(nullglob)}]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[228])]
            )
            (C {(typeset)} {(-i)} {(Lit_VarLike "_Dbg_old_set_nullglob=") ($ VSub_QMark "$?")})
            (C {(shopt)} {(-u)} {(nullglob)})
            (C {(shopt)} {(-s)} {(extdebug)})
            (AndOr
              children: [
                (DParen
                  child: (ArithUnary op_id:Arith_Bang child:(ArithVarRef name:_Dbg_set_debug))
                )
                (C {(set)} {(Lit_Other "+") (x)} {(Lit_Other "+") (v)} {(Lit_Other "+") (u)})
              ]
              op_id: Op_DAmp
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)}))
                                        spids: [299 304]
                                      )
                                    }
                                  right: {(_Dbg_) (Lit_Other "*")}
                                )
                            )
                            (DParen
                              child: 
                                (ArithUnary
                                  op_id: Arith_Bang
                                  child: (ArithVarRef name:_Dbg_set_debug)
                                )
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(_Dbg_set_to_return_from_debugger)} {(0)})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [-1 324]
                )
              ]
              spids: [-1 337]
            )
            (C {(_Dbg_set_debugger_entry)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_continue_rc)
                  op: Equal
                  rhs: {(_Dbg_inside_skip)}
                  spids: [353]
                )
              ]
              spids: [353]
            )
            (C {(shift)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_bash_command)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [366]
                )
              ]
              spids: [366]
            )
            (C {(shift)})
            (C {(_Dbg_save_args)} {(DQ ($ VSub_At "$@"))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_Great
                              left: (ArithVarRef name:_Dbg_step_ignore)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (DParen
                      child: (UnaryAssign op_id:Node_PostDMinus child:(LhsName name:_Dbg_step_ignore))
                    )
                    (C {(_Dbg_write_journal)} 
                      {(DQ ("_Dbg_step_ignore=") ($ VSub_Name "$_Dbg_step_ignore"))}
                    )
                  ]
                  spids: [-1 399]
                )
              ]
              spids: [-1 425]
            )
            (C {(typeset)} {(-i)} {(_Dbg_i)})
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:_Dbg_i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_Less
                  left: (ArithVarRef name:_Dbg_i)
                  right: (ArithVarRef name:_Dbg_watch_max)
                )
              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:_Dbg_i))
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  children: [
                                    (C {(Lit_Other "[")} {(-n)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name _Dbg_watch_exp>
                                            bracket_op: 
                                              (ArrayIndex
                                                expr: (ArithWord w:{($ VSub_Name "$_Dbg_i")})
                                              )
                                            spids: [475 480]
                                          )
                                        )
                                      } {(Lit_Other "]")}
                                    )
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobNEqual
                                          left: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name _Dbg_watch_enable>
                                                bracket_op: 
                                                  (ArrayIndex
                                                    expr: (ArithVarRef name:_Dbg_i)
                                                  )
                                                spids: [491 496]
                                              )
                                            }
                                          right: {(0)}
                                        )
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (C {(typeset)} 
                              {(Lit_VarLike "new_val=") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(_Dbg_get_watch_exp_eval)} {($ VSub_Name "$_Dbg_i")})
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [512 516]
                                )
                              }
                            )
                            (C {(typeset)} 
                              {(Lit_VarLike "old_val=") 
                                (BracedVarSub
                                  token: <VSub_Name _Dbg_watch_val>
                                  bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$_Dbg_i")}))
                                  spids: [522 527]
                                )
                              }
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobNEqual
                                              left: {($ VSub_Name "$old_val")}
                                              right: {($ VSub_Name "$new_val")}
                                            )
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [
                                    (DParen
                                      child: 
                                        (UnaryAssign
                                          op_id: Node_PostDPlus
                                          child: 
                                            (LhsIndexedName
                                              name: _Dbg_watch_count
                                              index: (ArithVarRef name:_Dbg_i)
                                            )
                                        )
                                    )
                                    (C {(_Dbg_msg)} 
                                      {
                                        (DQ ("Watchpoint ") ($ VSub_Name "$_Dbg_i") (": ") 
                                          (BracedVarSub
                                            token: <VSub_Name _Dbg_watch_exp>
                                            bracket_op: 
                                              (ArrayIndex
                                                expr: (ArithWord w:{($ VSub_Name "$_Dbg_i")})
                                              )
                                            spids: [563 568]
                                          ) (" changed:")
                                        )
                                      }
                                    )
                                    (C {(_Dbg_msg)} 
                                      {(DQ ("  old value: '") ($ VSub_Name "$old_val") ("'"))}
                                    )
                                    (C {(_Dbg_msg)} 
                                      {(DQ ("  new value: '") ($ VSub_Name "$new_val") ("'"))}
                                    )
                                    (C 
                                      {(_Dbg_watch_val) (Lit_Other "[") ($ VSub_Name "$_Dbg_i") 
                                        (Lit_Other "]") (Lit_Other "=") ($ VSub_Name "$new_val")
                                      }
                                    )
                                    (C {(_Dbg_hook_enter_debugger)} {(SQ <"on a watch trigger">)})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {($ VSub_Name "$_Dbg_continue_rc")}
                                    )
                                  ]
                                  spids: [-1 544]
                                )
                              ]
                              spids: [-1 611]
                            )
                          ]
                          spids: [-1 506]
                        )
                      ]
                      spids: [-1 614]
                    )
                  ]
                  spids: [465 617]
                )
            )
            (C {(typeset)} {(full_filename)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:full_filename)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(_Dbg_is_file)} {(DQ ($ VSub_Name "$_Dbg_frame_last_filename"))})
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [627 633]
                      )
                    }
                  spids: [626]
                )
              ]
              spids: [626]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_r child:{($ VSub_Name "$full_filename")})
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C 
                      {(_Dbg_file2canonic) (Lit_Other "[") ($ VSub_Name "$_Dbg_frame_last_filename") 
                        (Lit_Other "]") (Lit_Other "=") (DQ ($ VSub_Name "$full_filename"))
                      }
                    )
                  ]
                  spids: [-1 648]
                )
              ]
              spids: [-1 661]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_Great
                              left: (ArithVarRef name:_Dbg_action_count)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(_Dbg_hook_action_hit)} {(DQ ($ VSub_Name "$full_filename"))})]
                  spids: [-1 682]
                )
              ]
              spids: [-1 692]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_Great
                              left: (ArithVarRef name:_Dbg_brkpt_count)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(_Dbg_hook_breakpoint_hit)} {(DQ ($ VSub_Name "$full_filename"))})
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (DParen child:(ArithVarRef name:_Dbg_step_force))
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [
                                    (C {(typeset)} 
                                      {(Lit_VarLike "_Dbg_frame_previous_file=") 
                                        (DQ ($ VSub_Name "$_Dbg_frame_last_filename"))
                                      }
                                    )
                                    (C {(typeset)} {(-i)} 
                                      {(Lit_VarLike "_Dbg_frame_previous_lineno=") 
                                        (DQ ($ VSub_Name "$_Dbg_frame_last_lineno"))
                                      }
                                    )
                                  ]
                                  spids: [-1 742]
                                )
                              ]
                              spids: [-1 763]
                            )
                            (DParen
                              child: 
                                (UnaryAssign
                                  op_id: Node_PostDPlus
                                  child: 
                                    (LhsIndexedName
                                      name: _Dbg_brkpt_counts
                                      index: (ArithVarRef name:_Dbg_brkpt_num)
                                    )
                                )
                            )
                            (C {(_Dbg_write_journal)} 
                              {
                                (DQ ("_Dbg_brkpt_counts[") ($ VSub_Name "$_Dbg_brkpt_num") ("]=") 
                                  (BracedVarSub
                                    token: <VSub_Name _Dbg_brkpt_counts>
                                    bracket_op: (ArrayIndex expr:(ArithVarRef name:_Dbg_brkpt_num))
                                    spids: [792 797]
                                  )
                                )
                              }
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_DEqual
                                              left: 
                                                (ArithBinary
                                                  op_id: Arith_LBracket
                                                  left: (ArithVarRef name:_Dbg_brkpt_onetime)
                                                  right: (ArithVarRef name:_Dbg_brkpt_num)
                                                )
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:_Dbg_stop_reason)
                                          op: Equal
                                          rhs: {(SQ <"at a breakpoint that has since been deleted">)}
                                          spids: [822]
                                        )
                                      ]
                                      spids: [822]
                                    )
                                    (C {(_Dbg_delete_brkpt_entry)} {($ VSub_Name "$_Dbg_brkpt_num")})
                                  ]
                                  spids: [-1 819]
                                )
                              ]
                              else_action: [
                                (C {(_Dbg_msg)} 
                                  {
                                    (DQ ("Breakpoint ") ($ VSub_Name "$_Dbg_brkpt_num") (" hit (") 
                                      (BracedVarSub
                                        token: <VSub_Name _Dbg_brkpt_counts>
                                        bracket_op: 
                                          (ArrayIndex
                                            expr: (ArithVarRef name:_Dbg_brkpt_num)
                                          )
                                        spids: [844 849]
                                      ) (" times).")
                                    )
                                  }
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:_Dbg_stop_reason)
                                      op: Equal
                                      rhs: {(DQ ("at breakpoint ") ($ VSub_Name "$_Dbg_brkpt_num"))}
                                      spids: [854]
                                    )
                                  ]
                                  spids: [854]
                                )
                              ]
                              spids: [833 861]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_LBracket
                                              left: (ArithVarRef name:_Dbg_brkpt_commands_end)
                                              right: (ArithWord w:{($ VSub_Name "$_Dbg_brkpt_num")})
                                            )
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [(C {(_Dbg_bp_commands)} {($ VSub_Name "$_Dbg_brkpt_num")})]
                                  spids: [-1 886]
                                )
                              ]
                              spids: [-1 898]
                            )
                            (C {(_Dbg_hook_enter_debugger)} {(DQ ($ VSub_Name "$_Dbg_stop_reason"))})
                            (C {(_Dbg_set_to_return_from_debugger)} {(1)})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {($ VSub_Name "$_Dbg_continue_rc")}
                            )
                          ]
                          spids: [-1 730]
                        )
                      ]
                      spids: [-1 918]
                    )
                  ]
                  spids: [-1 718]
                )
              ]
              spids: [-1 921]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithVarRef name:_Dbg_step_ignore)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (DParen child:(ArithVarRef name:_Dbg_step_force))
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          children: [
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: (ArithVarRef name:_Dbg_last_lineno)
                                                  right: (ArithVarRef name:_Dbg_frame_last_lineno)
                                                )
                                            )
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobDEqual
                                                  left: {($ VSub_Name "$_Dbg_last_source_file")}
                                                  right: {($ VSub_Name "$_Dbg_frame_last_filename")}
                                                )
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [
                                    (C {(_Dbg_set_to_return_from_debugger)} {(1)})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {($ VSub_Name "$_Dbg_continue_rc")}
                                    )
                                  ]
                                  spids: [-1 986]
                                )
                              ]
                              spids: [-1 999]
                            )
                          ]
                          spids: [-1 954]
                        )
                      ]
                      spids: [-1 1002]
                    )
                    (C {(_Dbg_hook_enter_debugger)} {(SQ <"after being stepped">)})
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {($ VSub_Name "$_Dbg_continue_rc")}
                    )
                  ]
                  spids: [-1 942]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: 
                                (ArithWord
                                  w: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        prefix_op: VSub_Pound
                                        bracket_op: (WholeArray op_id:Lit_At)
                                        spids: [1022 1028]
                                      )
                                    }
                                )
                              right: (ArithVarRef name:_Dbg_return_level)
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_Dbg_return_level)
                          op: Equal
                          rhs: {(0)}
                          spids: [1046]
                        )
                      ]
                      spids: [1046]
                    )
                    (C {(_Dbg_hook_enter_debugger)} {(SQ <"on a return">)})
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {($ VSub_Name "$_Dbg_continue_rc")}
                    )
                  ]
                  spids: [1018 1039]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: 
                                (ArithUnary
                                  op_id: Node_UnaryMinus
                                  child: (ArithWord w:{(Lit_Digits 1)})
                                )
                              right: (ArithVarRef name:_Dbg_return_level)
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(_Dbg_hook_enter_debugger)} {(SQ <"on fielding signal">)})
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {($ VSub_Name "$_Dbg_continue_rc")}
                    )
                  ]
                  spids: [1062 1078]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithVarRef name:_Dbg_set_linetrace)
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (DParen child:(ArithVarRef name:_Dbg_set_linetrace_delay))
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [(C {(sleep)} {($ VSub_Name "$_Dbg_linetrace_delay")})]
                          spids: [-1 1120]
                        )
                      ]
                      spids: [-1 1128]
                    )
                    (C {(_Dbg_print_linetrace)})
                    (C {(_Dbg_set_to_return_from_debugger)} {(1)})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_Dbg_last_lineno)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name BASH_LINENO>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [1144 1149]
                              )
                            }
                          spids: [1143]
                        )
                      ]
                      spids: [1143]
                    )
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {($ VSub_Name "$_Dbg_continue_rc")}
                    )
                  ]
                  spids: [1097 1108]
                )
              ]
              spids: [-1 1157]
            )
            (C {(_Dbg_set_to_return_from_debugger)} {(1)})
            (ControlFlow
              token: <ControlFlow_Return return>
              arg_word: {($ VSub_Name "$_Dbg_continue_rc")}
            )
          ]
          spids: [191]
        )
      spids: [187 190]
    )
    (FuncDef
      name: _Dbg_hook_action_hit
      body: 
        (BraceGroup
          children: [
            (C {(typeset)} {(Lit_VarLike "full_filename=") (DQ ($ VSub_Number "$1"))})
            (C {(typeset)} {(Lit_VarLike "lineno=") ($ VSub_Name "$_Dbg_frame_last_lineno")})
            (C {(typeset)} {(-a)} {(linenos)})
            (AndOr
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name "$full_filename")})
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DAmp
            )
            (C {(eval)} 
              {
                (DQ ("linenos=(") 
                  (BracedVarSub
                    token: <VSub_Name _Dbg_action_file2linenos>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$full_filename")}))
                    spids: [1224 1229]
                  ) (")")
                )
              }
            )
            (C {(typeset)} {(-a)} {(action_nos)})
            (C {(eval)} 
              {
                (DQ ("action_nos=(") 
                  (BracedVarSub
                    token: <VSub_Name _Dbg_action_file2action>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$full_filename")}))
                    spids: [1245 1250]
                  ) (")")
                )
              }
            )
            (C {(typeset)} {(-i)} {(_Dbg_i)})
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:_Dbg_i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_Less
                  left: (ArithVarRef name:_Dbg_i)
                  right: 
                    (ArithWord
                      w: 
                        {
                          (BracedVarSub
                            token: <VSub_Name linenos>
                            prefix_op: VSub_Pound
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [1279 1285]
                          )
                        }
                    )
                )
              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:_Dbg_i))
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: 
                                        (ArithBinary
                                          op_id: Arith_LBracket
                                          left: (ArithVarRef name:linenos)
                                          right: (ArithVarRef name:_Dbg_i)
                                        )
                                      right: (ArithVarRef name:lineno)
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:_Dbg_action_num)
                                  right: 
                                    (ArithBinary
                                      op_id: Arith_LBracket
                                      left: (ArithVarRef name:action_nos)
                                      right: (ArithVarRef name:_Dbg_i)
                                    )
                                )
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:stmt)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name _Dbg_action_stmt>
                                          bracket_op: 
                                            (ArrayIndex
                                              expr: (ArithWord w:{($ VSub_Name "$_Dbg_action_num")})
                                            )
                                          spids: [1335 1340]
                                        )
                                      )
                                    }
                                  spids: [1333]
                                )
                              ]
                              spids: [1333]
                            )
                            (C {(.)} {(${ VSub_Name _Dbg_libdir) (/dbg-set-d-vars.inc)})
                            (C {(eval)} {(DQ ($ VSub_Name "$stmt"))})
                            (C {(_Dbg_set_debugger_internal)})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [-1 1315]
                        )
                      ]
                      spids: [-1 1375]
                    )
                  ]
                  spids: [1294 1378]
                )
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [1176]
        )
      spids: [1172 1175]
    )
    (FuncDef
      name: _Dbg_hook_breakpoint_hit
      body: 
        (BraceGroup
          children: [
            (C {(typeset)} {(Lit_VarLike "full_filename=") (DQ ($ VSub_Number "$1"))})
            (C {(typeset)} {(Lit_VarLike "lineno=") ($ VSub_Name "$_Dbg_frame_last_lineno")})
            (C {(typeset)} {(-a)} {(linenos)})
            (AndOr
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name "$full_filename")})
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (DBracket
                  expr: 
                    (BoolUnary
                      op_id: BoolUnary_z
                      child: 
                        {
                          (BracedVarSub
                            token: <VSub_Name _Dbg_brkpt_file2linenos>
                            bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$full_filename")}))
                            spids: [1446 1451]
                          )
                        }
                    )
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DAmp
            )
            (C {(eval)} 
              {
                (DQ ("linenos=(") 
                  (BracedVarSub
                    token: <VSub_Name _Dbg_brkpt_file2linenos>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$full_filename")}))
                    spids: [1466 1471]
                  ) (")")
                )
              }
            )
            (C {(typeset)} {(-a)} {(brkpt_nos)})
            (C {(eval)} 
              {
                (DQ ("brkpt_nos=(") 
                  (BracedVarSub
                    token: <VSub_Name _Dbg_brkpt_file2brkpt>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$full_filename")}))
                    spids: [1487 1492]
                  ) (")")
                )
              }
            )
            (C {(typeset)} {(-i)} {(i)})
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_Less
                  left: (ArithVarRef name:i)
                  right: 
                    (ArithWord
                      w: 
                        {
                          (BracedVarSub
                            token: <VSub_Name linenos>
                            prefix_op: VSub_Pound
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [1520 1526]
                          )
                        }
                    )
                )
              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: 
                                        (ArithBinary
                                          op_id: Arith_LBracket
                                          left: (ArithVarRef name:linenos)
                                          right: (ArithVarRef name:i)
                                        )
                                      right: (ArithVarRef name:lineno)
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:_Dbg_brkpt_num)
                                  right: 
                                    (ArithBinary
                                      op_id: Arith_LBracket
                                      left: (ArithVarRef name:brkpt_nos)
                                      right: (ArithVarRef name:i)
                                    )
                                )
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_LBracket
                                              left: (ArithVarRef name:_Dbg_brkpt_enable)
                                              right: (ArithVarRef name:_Dbg_brkpt_num)
                                            )
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(0)}
                                    )
                                  ]
                                  spids: [-1 1591]
                                )
                              ]
                              spids: [-1 1599]
                            )
                          ]
                          spids: [-1 1556]
                        )
                      ]
                      spids: [-1 1602]
                    )
                  ]
                  spids: [1535 1605]
                )
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [1398]
        )
      spids: [1394 1397]
    )
    (FuncDef
      name: _Dbg_hook_enter_debugger
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_stop_reason)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [1625]
                )
              ]
              spids: [1625]
            )
            (AndOr
              children: [
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobNEqual
                      left: {(SQ <noprint>)}
                      right: {($ VSub_Number "$2")}
                    )
                )
                (C {(_Dbg_print_location_and_command)})
              ]
              op_id: Op_DAmp
            )
            (C {(_Dbg_process_commands)})
            (C {(_Dbg_set_to_return_from_debugger)} {(1)})
            (ControlFlow
              token: <ControlFlow_Return return>
              arg_word: {($ VSub_Name "$_Dbg_continue_rc")}
            )
          ]
          spids: [1622]
        )
      spids: [1618 1621]
    )
    (FuncDef
      name: _Dbg_cleanup
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_f child:{($ VSub_Name "$_Dbg_evalfile")})
                )
                (SimpleCommand
                  words: [{(rm)} {(-f)} {($ VSub_Name "$_Dbg_evalfile")}]
                  redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[1689])]
                )
              ]
              op_id: Op_DAmp
            )
            (C {(set)} {(Lit_Other "+") (u)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (DBracket
                              expr: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: {($ VSub_Name "$_Dbg_EXECUTION_STRING")}
                                )
                            )
                            (DBracket
                              expr: 
                                (BoolUnary
                                  op_id: BoolUnary_r
                                  child: {($ VSub_Name "$_Dbg_script_file")}
                                )
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(rm)} {($ VSub_Name "$_Dbg_script_file")})]
                  spids: [-1 1721]
                )
              ]
              spids: [-1 1729]
            )
            (C {(_Dbg_erase_journals)})
            (C {(_Dbg_restore_user_vars)})
          ]
          spids: [1670]
        )
      spids: [1666 1669]
    )
    (FuncDef
      name: _Dbg_cleanup2
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_f child:{($ VSub_Name "$_Dbg_evalfile")})
                )
                (SimpleCommand
                  words: [{(rm)} {(-f)} {($ VSub_Name "$_Dbg_evalfile")}]
                  redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[1769])]
                )
              ]
              op_id: Op_DAmp
            )
            (C {(_Dbg_erase_journals)})
            (C {(trap)} {(-)} {(EXIT)})
          ]
          spids: [1750]
        )
      spids: [1746 1749]
    )
  ]
)