(CommandList
  children: [
    (Assignment
      keyword: Assign_Typeset
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_RESTART_COMMAND) op:Equal rhs:{(SQ )} spids:[63])]
      spids: [61]
    )
    (Assignment
      keyword: Assign_Typeset
      flags: [-i]
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_set_debug) op:Equal rhs:{(0)} spids:[81])]
      spids: [77]
    )
    (Assignment
      keyword: Assign_Typeset
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_stop_reason) op:Equal rhs:{(SQ )} spids:[89])]
      spids: [87]
    )
    (Assignment
      keyword: Assign_Typeset
      flags: [-i]
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_restore_debug_trap) op:Equal rhs:{(1)} spids:[104])]
      spids: [100]
    )
    (Assignment
      keyword: Assign_Typeset
      flags: [-i]
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_inside_skip) op:Equal rhs:{(0)} spids:[118])]
      spids: [114]
    )
    (Assignment
      keyword: Assign_Typeset
      flags: [-i]
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_continue_rc) op:Equal rhs:{(-1)} spids:[159])]
      spids: [155]
    )
    (FuncDef
      name: _Dbg_debug_trap_handler
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_debugged_exit_code)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [216]
                )
              ]
              spids: [212]
            )
            (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:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_old_set_nullglob)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [237]
                )
              ]
              spids: [233]
            )
            (C {(shopt)} {(-u)} {(nullglob)})
            (C {(shopt)} {(-s)} {(extdebug)})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DParen
                  child: (ArithUnary op_id:Arith_Bang child:(ArithVarRef name:_Dbg_set_debug))
                  spids: [264 270]
                )
                (C {(set)} {(Lit_Other '+') (x)} {(Lit_Other '+') (v)} {(Lit_Other '+') (u)})
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          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)
                                )
                              spids: [315 321]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(_Dbg_set_to_return_from_debugger)} {(0)})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [16777215 324]
                )
              ]
              spids: [16777215 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)})
                            )
                          spids: [388 395]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (DParen
                      child: (UnaryAssign op_id:Node_PostDMinus child:(LhsName name:_Dbg_step_ignore))
                      spids: [402 406]
                    )
                    (C {(_Dbg_write_journal)} 
                      {(DQ ('_Dbg_step_ignore=') ($ VSub_Name '$_Dbg_step_ignore'))}
                    )
                  ]
                  spids: [16777215 399]
                )
              ]
              spids: [16777215 425]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [(assign_pair lhs:(LhsName name:_Dbg_i) op:Equal spids:[437])]
              spids: [433]
            )
            (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
                                  ops: [Op_DAmp]
                                  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)}
                                        )
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_Typeset
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:new_val)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(_Dbg_get_watch_exp_eval)} {($ VSub_Name '$_Dbg_i')})
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [512 516]
                                      )
                                    }
                                  spids: [511]
                                )
                              ]
                              spids: [509]
                            )
                            (Assignment
                              keyword: Assign_Typeset
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:old_val)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name _Dbg_watch_val>
                                        bracket_op: 
                                          (ArrayIndex
                                            expr: (ArithWord w:{($ VSub_Name '$_Dbg_i')})
                                          )
                                        spids: [522 527]
                                      )
                                    }
                                  spids: [521]
                                )
                              ]
                              spids: [519]
                            )
                            (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)
                                            )
                                        )
                                      spids: [547 554]
                                    )
                                    (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: [16777215 544]
                                )
                              ]
                              spids: [16777215 611]
                            )
                          ]
                          spids: [16777215 506]
                        )
                      ]
                      spids: [16777215 614]
                    )
                  ]
                  spids: [465 617]
                )
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [(assign_pair lhs:(LhsName name:full_filename) op:Equal spids:[623])]
              spids: [621]
            )
            (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: [16777215 648]
                )
              ]
              spids: [16777215 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)})
                            )
                          spids: [671 678]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(_Dbg_hook_action_hit)} {(DQ ($ VSub_Name '$full_filename'))})]
                  spids: [16777215 682]
                )
              ]
              spids: [16777215 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)})
                            )
                          spids: [707 714]
                        )
                      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)
                                          spids: [735 738]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_Typeset
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:_Dbg_frame_previous_file)
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Name '$_Dbg_frame_last_filename'))}
                                          spids: [747]
                                        )
                                      ]
                                      spids: [745]
                                    )
                                    (Assignment
                                      keyword: Assign_Typeset
                                      flags: [-i]
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:_Dbg_frame_previous_lineno)
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Name '$_Dbg_frame_last_lineno'))}
                                          spids: [757]
                                        )
                                      ]
                                      spids: [753]
                                    )
                                  ]
                                  spids: [16777215 742]
                                )
                              ]
                              spids: [16777215 763]
                            )
                            (DParen
                              child: 
                                (UnaryAssign
                                  op_id: Node_PostDPlus
                                  child: 
                                    (LhsIndexedName
                                      name: _Dbg_brkpt_counts
                                      index: (ArithVarRef name:_Dbg_brkpt_num)
                                    )
                                )
                              spids: [774 781]
                            )
                            (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)})
                                            )
                                          spids: [803 815]
                                        )
                                      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: [16777215 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')})
                                            )
                                          spids: [874 882]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(_Dbg_bp_commands)} {($ VSub_Name '$_Dbg_brkpt_num')})]
                                  spids: [16777215 886]
                                )
                              ]
                              spids: [16777215 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: [16777215 730]
                        )
                      ]
                      spids: [16777215 918]
                    )
                  ]
                  spids: [16777215 718]
                )
              ]
              spids: [16777215 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)})
                            )
                          spids: [932 939]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: (ArithVarRef name:_Dbg_step_force)
                                  spids: [947 950]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: (ArithVarRef name:_Dbg_last_lineno)
                                                  right: (ArithVarRef name:_Dbg_frame_last_lineno)
                                                )
                                              spids: [959 968]
                                            )
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobDEqual
                                                  left: {($ VSub_Name '$_Dbg_last_source_file')}
                                                  right: {($ VSub_Name '$_Dbg_frame_last_filename')}
                                                )
                                            )
                                          ]
                                        )
                                      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: [16777215 986]
                                )
                              ]
                              spids: [16777215 999]
                            )
                          ]
                          spids: [16777215 954]
                        )
                      ]
                      spids: [16777215 1002]
                    )
                    (C {(_Dbg_hook_enter_debugger)} {(SQ <'after being stepped'>)})
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {($ VSub_Name '$_Dbg_continue_rc')}
                    )
                  ]
                  spids: [16777215 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)
                            )
                          spids: [1020 1035]
                        )
                      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)
                            )
                          spids: [1064 1074]
                        )
                      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)})
                            )
                          spids: [1099 1104]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: (ArithVarRef name:_Dbg_set_linetrace_delay)
                                  spids: [1113 1116]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(sleep)} {($ VSub_Name '$_Dbg_linetrace_delay')})]
                          spids: [16777215 1120]
                        )
                      ]
                      spids: [16777215 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: [16777215 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: [
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:full_filename)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [1181]
                )
              ]
              spids: [1179]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lineno)
                  op: Equal
                  rhs: {($ VSub_Name '$_Dbg_frame_last_lineno')}
                  spids: [1189]
                )
              ]
              spids: [1187]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-a]
              pairs: [(assign_pair lhs:(LhsName name:linenos) op:Equal spids:[1202])]
              spids: [1198]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$full_filename')})
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (C {(eval)} 
              {
                (DQ ('linenos=(') 
                  (BracedVarSub
                    token: <VSub_Name _Dbg_action_file2linenos>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$full_filename')}))
                    spids: [1224 1229]
                  ) (')')
                )
              }
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-a]
              pairs: [(assign_pair lhs:(LhsName name:action_nos) op:Equal spids:[1238])]
              spids: [1234]
            )
            (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]
                  ) (')')
                )
              }
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [(assign_pair lhs:(LhsName name:_Dbg_i) op:Equal spids:[1260])]
              spids: [1256]
            )
            (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)
                                    )
                                  spids: [1299 1311]
                                )
                              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)
                                    )
                                )
                              spids: [1318 1330]
                            )
                            (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: [16777215 1315]
                        )
                      ]
                      spids: [16777215 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: [
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:full_filename)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [1403]
                )
              ]
              spids: [1401]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lineno)
                  op: Equal
                  rhs: {($ VSub_Name '$_Dbg_frame_last_lineno')}
                  spids: [1411]
                )
              ]
              spids: [1409]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-a]
              pairs: [(assign_pair lhs:(LhsName name:linenos) op:Equal spids:[1424])]
              spids: [1420]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$full_filename')})
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              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)})
              ]
            )
            (C {(eval)} 
              {
                (DQ ('linenos=(') 
                  (BracedVarSub
                    token: <VSub_Name _Dbg_brkpt_file2linenos>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$full_filename')}))
                    spids: [1466 1471]
                  ) (')')
                )
              }
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-a]
              pairs: [(assign_pair lhs:(LhsName name:brkpt_nos) op:Equal spids:[1480])]
              spids: [1476]
            )
            (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]
                  ) (')')
                )
              }
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[1501])]
              spids: [1497]
            )
            (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)
                                    )
                                  spids: [1540 1552]
                                )
                              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)
                                    )
                                )
                              spids: [1563 1575]
                            )
                            (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)
                                            )
                                          spids: [1580 1587]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(0)}
                                    )
                                  ]
                                  spids: [16777215 1591]
                                )
                              ]
                              spids: [16777215 1599]
                            )
                          ]
                          spids: [16777215 1556]
                        )
                      ]
                      spids: [16777215 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
              ops: [Op_DAmp]
              children: [
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobNEqual
                      left: {(SQ <noprint>)}
                      right: {($ VSub_Number '$2')}
                    )
                )
                (C {(_Dbg_print_location_and_command)})
              ]
            )
            (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
              ops: [Op_DAmp]
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_f child:{($ VSub_Name '$_Dbg_evalfile')})
                )
                (SimpleCommand
                  words: [{(rm)} {(-f)} {($ VSub_Name '$_Dbg_evalfile')}]
                  redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                )
              ]
            )
            (C {(set)} {(Lit_Other '+') (u)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          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')}
                                )
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(rm)} {($ VSub_Name '$_Dbg_script_file')})]
                  spids: [16777215 1721]
                )
              ]
              spids: [16777215 1729]
            )
            (C {(_Dbg_erase_journals)})
            (C {(_Dbg_restore_user_vars)})
          ]
          spids: [1670]
        )
      spids: [1666 1669]
    )
    (FuncDef
      name: _Dbg_cleanup2
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_f child:{($ VSub_Name '$_Dbg_evalfile')})
                )
                (SimpleCommand
                  words: [{(rm)} {(-f)} {($ VSub_Name '$_Dbg_evalfile')}]
                  redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                )
              ]
            )
            (C {(_Dbg_erase_journals)})
            (C {(trap)} {(-)} {(EXIT)})
          ]
          spids: [1750]
        )
      spids: [1746 1749]
    )
  ]
)