(CommandList
  children: [
    (FuncDef
      name: _Dbg_set_debugger_internal
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:IFS)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$_Dbg_space_IFS'))}
                      spids: [71]
                    )
                  ]
                  spids: [71]
                )
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PS4)
                  op: Equal
                  rhs: {(SQ <'+ dbg (${BASH_SOURCE}:${LINENO}[$BASH_SUBSHELL]): ${FUNCNAME[0]}\\n'>)}
                  spids: [78]
                )
              ]
              spids: [78]
            )
          ]
          spids: [68]
        )
      spids: [64 67]
    )
    (FuncDef
      name: _Dbg_restore_user_vars
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:IFS)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$_Dbg_space_IFS'))}
                      spids: [93]
                    )
                  ]
                  spids: [93]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(set)} {(-) ($ VSub_Name '$_Dbg_old_set_opts')})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:IFS)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$_Dbg_old_IFS'))}
                      spids: [106]
                    )
                  ]
                  spids: [106]
                )
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PS4)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$_Dbg_old_PS4'))}
                  spids: [113]
                )
              ]
              spids: [113]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithVarRef name:_Dbg_old_set_nullglob)
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                )
                (C {(shopt)} {(-s)} {(nullglob)})
              ]
            )
          ]
          spids: [90]
        )
      spids: [86 89]
    )
    (FuncDef
      name: _Dbg_save_args
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_n)
                  op: Equal
                  rhs: {(BracedVarSub token:<VSub_At '@'> prefix_op:VSub_Pound spids:[166 169])}
                  spids: [165]
                )
              ]
              spids: [161]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [(assign_pair lhs:(LhsName name:_Dbg_i) op:Equal spids:[176])]
              spids: [172]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_arg_max)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name _Dbg_arg>
                        prefix_op: VSub_Pound
                        bracket_op: (WholeArray op_id:Lit_At)
                        spids: [184 190]
                      )
                    }
                  spids: [183]
                )
              ]
              spids: [179]
            )
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:_Dbg_i)
                  right: (ArithVarRef name:_Dbg_arg_max)
                )
              cond: 
                (ArithBinary
                  op_id: Arith_Great
                  left: (ArithVarRef name:_Dbg_i)
                  right: (ArithVarRef name:_Dbg_n)
                )
              update: (UnaryAssign op_id:Node_PostDMinus child:(LhsName name:_Dbg_i))
              body: 
                (DoGroup
                  children: [
                    (C {(unset)} {(_Dbg_arg) (Lit_Other '[') ($ VSub_Name '$_Dbg_i') (Lit_Other ']')})
                  ]
                  spids: [231 242]
                )
            )
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:_Dbg_i)
                  right: (ArithWord w:{(Lit_Digits 1)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_Great
                  left: (ArithVarRef name:_Dbg_n)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              update: (UnaryAssign op_id:Node_PostDMinus child:(LhsName name:_Dbg_n))
              body: 
                (DoGroup
                  children: [
                    (C 
                      {(_Dbg_arg) (Lit_Other '[') ($ VSub_Name '$_Dbg_i') (Lit_Other ']') 
                        (Lit_Other '=') (DQ ($ VSub_Number '$1'))
                      }
                    )
                    (DParen
                      child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:_Dbg_i))
                    )
                    (C {(shift)})
                  ]
                  spids: [275 298]
                )
            )
            (C {(unset)} {(_Dbg_arg) (Lit_Other '[') (0) (Lit_Other ']')})
          ]
          spids: [145]
        )
      spids: [141 144]
    )
    (FuncDef
      name: _Dbg_set_debugger_entry
      body: 
        (BraceGroup
          children: [
            (C {(trap)} {(SQ )} {(DEBUG)})
            (Assignment
              keyword: Assign_Typeset
              flags: [-li]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:discard_top_fn_count)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 1>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(2)})
                        spids: [375 379]
                      )
                    }
                  spids: [374]
                )
              ]
              spids: [370]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_cur_fn)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name FUNCNAME>
                        bracket_op: 
                          (ArrayIndex
                            expr: (ArithWord w:{($ VSub_Name '$discard_top_fn_count')})
                          )
                        spids: [384 389]
                      )
                    }
                  spids: [383]
                )
              ]
              spids: [383]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_frame_last_lineno)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name BASH_LINENO>
                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)}))
                        spids: [393 398]
                      )
                    }
                  spids: [392]
                )
              ]
              spids: [392]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithVarRef name:_Dbg_frame_last_lineno)
                      right: (ArithWord w:{(Lit_Digits 1)})
                    )
                )
                (C {(let)} {(Lit_VarLike '_Dbg_frame_last_lineno=') (1)})
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_old_IFS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$IFS'))}
                  spids: [419]
                )
              ]
              spids: [419]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_old_PS4)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$PS4'))}
                  spids: [425]
                )
              ]
              spids: [425]
            )
            (DParen
              child: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:_Dbg_stack_size)
                  right: 
                    (ArithBinary
                      op_id: Arith_Minus
                      left: 
                        (ArithBinary
                          op_id: Arith_Plus
                          left: 
                            (ArithWord
                              w: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    prefix_op: VSub_Pound
                                    bracket_op: (WholeArray op_id:Lit_At)
                                    spids: [436 442]
                                  )
                                }
                            )
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                      right: (ArithVarRef name:discard_top_fn_count)
                    )
                )
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:_Dbg_stack_pos) op:Equal rhs:{(_0)} spids:[455])]
              spids: [455]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_listline)
                  op: Equal
                  rhs: {(_Dbg_frame_last_lineno)}
                  spids: [459]
                )
              ]
              spids: [459]
            )
            (C {(_Dbg_set_debugger_internal)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_frame_last_filename)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name BASH_SOURCE>
                        bracket_op: 
                          (ArrayIndex
                            expr: (ArithWord w:{($ VSub_Name '$discard_top_fn_count')})
                          )
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: {($ VSub_Name '$_Dbg_bogus_file')}
                          )
                        spids: [467 474]
                      )
                    }
                  spids: [466]
                )
              ]
              spids: [466]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_frame_last_filename)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(_Dbg_resolve_expand_filename)} 
                                {(DQ ($ VSub_Name '$_Dbg_frame_last_filename'))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [478 484]
                      )
                    }
                  spids: [477]
                )
              ]
              spids: [477]
            )
            (C {(_Dbg_source_journal)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_Great
                              left: (ArithVarRef name:_Dbg_QUIT_LEVELS)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(_Dbg_do_quit)} {($ VSub_Name '$_Dbg_debugged_exit_code')})]
                  spids: [16777215 515]
                )
              ]
              spids: [16777215 523]
            )
          ]
          spids: [342]
        )
      spids: [338 341]
    )
    (FuncDef
      name: _Dbg_set_to_return_from_debugger
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_stop_reason)
                  op: Equal
                  rhs: {(SQ )}
                  spids: [536]
                )
              ]
              spids: [536]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:_Dbg_listline) op:Equal rhs:{(0)} spids:[541])]
              spids: [541]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_last_lineno)
                  op: Equal
                  rhs: {(${ VSub_Name _Dbg_frame_last_lineno)}
                  spids: [549]
                )
              ]
              spids: [549]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_NEqual
                              left: (ArithWord w:{($ VSub_Number '$1')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_Dbg_last_bash_command)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$_Dbg_bash_command'))}
                          spids: [573]
                        )
                      ]
                      spids: [573]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_Dbg_last_source_file)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$_Dbg_frame_last_filename'))}
                          spids: [579]
                        )
                      ]
                      spids: [579]
                    )
                  ]
                  spids: [16777215 570]
                )
              ]
              else_action: [
                (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 1)}))
                            spids: [589 594]
                          )
                        }
                      spids: [588]
                    )
                  ]
                  spids: [588]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:_Dbg_last_source_file)
                      op: Equal
                      rhs: 
                        {
                          (BracedVarSub
                            token: <VSub_Name BASH_SOURCE>
                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)}))
                            suffix_op: 
                              (StringUnary
                                op_id: VTest_ColonHyphen
                                arg_word: {($ VSub_Name '$_Dbg_bogus_file')}
                              )
                            spids: [598 605]
                          )
                        }
                      spids: [597]
                    )
                  ]
                  spids: [597]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:_Dbg_last_bash_command)
                      op: Equal
                      rhs: {(DQ ('**unsaved _bashdb command**'))}
                      spids: [608]
                    )
                  ]
                  spids: [608]
                )
              ]
              spids: [585 614]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (DParen child:(ArithVarRef name:_Dbg_restore_debug_trap))
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(trap)} {(SQ <'_Dbg_debug_trap_handler 0 "$BASH_COMMAND" "$@"'>)} {(DEBUG)})
                  ]
                  spids: [16777215 629]
                )
              ]
              else_action: [(C {(trap)} {(-)} {(DEBUG)})]
              spids: [641 651]
            )
            (C {(_Dbg_restore_user_vars)})
          ]
          spids: [532]
        )
      spids: [528 531]
    )
    (FuncDef
      name: _Dbg_save_state
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_statefile)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(_Dbg_tempname)} {(statefile)})])
                        left_token: <Left_CommandSub '$('>
                        spids: [668 672]
                      )
                    }
                  spids: [667]
                )
              ]
              spids: [667]
            )
            (SimpleCommand
              words: [{(echo)} {(SQ )}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [680]
                )
              ]
            )
            (C {(_Dbg_save_breakpoints)})
            (C {(_Dbg_save_actions)})
            (C {(_Dbg_save_watchpoints)})
            (C {(_Dbg_save_display)})
            (C {(_Dbg_save_Dbg_set)})
            (SimpleCommand
              words: [{(echo)} {(DQ ('unset DBG_RESTART_FILE'))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [706]
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('rm ') ($ VSub_Name '$_Dbg_statefile'))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [718]
                )
              ]
            )
            (C {(export)} {(Lit_VarLike 'DBG_RESTART_FILE=') (DQ ($ VSub_Name '$_Dbg_statefile'))})
            (C {(_Dbg_write_journal)} 
              {
                (DQ ('export DBG_RESTART_FILE=') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                  ($ VSub_Name '$_Dbg_statefile') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                )
              }
            )
          ]
          spids: [664]
        )
      spids: [660 663]
    )
    (FuncDef
      name: _Dbg_save_Dbg_set
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(Assign_Declare declare)} {(-p)} {(_Dbg_set_basename)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [756]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Declare declare)} {(-p)} {(_Dbg_set_debug)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [767]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Declare declare)} {(-p)} {(_Dbg_edit)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [778]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Declare declare)} {(-p)} {(_Dbg_set_listsize)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [789]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Declare declare)} {(-p)} {(_Dbg_prompt_str)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [800]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Declare declare)} {(-p)} {(_Dbg_set_show_command)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [811]
                )
              ]
            )
          ]
          spids: [747]
        )
      spids: [743 746]
    )
    (FuncDef
      name: _Dbg_restore_state
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:statefile)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [827]
                )
              ]
              spids: [825]
            )
            (C {(.)} {($ VSub_Number '$1')})
          ]
          spids: [822]
        )
      spids: [818 821]
    )
    (FuncDef
      name: _Dbg_restore_from_nested_shell
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(rm)} {(-f)} {($ VSub_Name '$_Dbg_shell_temp_profile')}]
              redirects: [
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[857])
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(/dev/null)}
                  spids: [860]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_r
                              child: {($ VSub_Name '$_Dbg_restore_info')}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(.)} {($ VSub_Name '$_Dbg_restore_info')})
                    (C {(rm)} {($ VSub_Name '$_Dbg_restore_info')})
                  ]
                  spids: [16777215 876]
                )
              ]
              spids: [16777215 889]
            )
          ]
          spids: [848]
        )
      spids: [844 847]
    )
  ]
)