(CommandList
  children: [
    (C {(typeset)} {(_Dbg_old_setopts)})
    (C {(typeset)} {(Lit_VarLike "_Dbg_old_EXIT_handler=") (SQ )})
    (C {(typeset)} {(-i)} {(Lit_VarLike "_Dbg_QUIT_ON_QUIT=") (0)})
    (C {(typeset)} {(-i)} {(Lit_VarLike "_Dbg_program_exit_code=") (0)})
    (Sentence child:(C {(typeset)} {(-a)} {(_Dbg_sig_print)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_sig_print)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [125]
        )
      ]
      spids: [125]
    )
    (Sentence child:(C {(typeset)} {(-a)} {(_Dbg_sig_stop)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_sig_stop)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [143]
        )
      ]
      spids: [143]
    )
    (Sentence child:(C {(typeset)} {(-a)} {(_Dbg_sig_show_stack)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_sig_show_stack)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [161]
        )
      ]
      spids: [161]
    )
    (Sentence child:(C {(typeset)} {(-a)} {(_Dbg_sig_passthrough)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_sig_passthrough)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [179]
        )
      ]
      spids: [179]
    )
    (C {(typeset)} {(-i)} {(Lit_VarLike "_Dbg_return_level=") (0)})
    (Sentence child:(C {(typeset)} {(-a)} {(_Dbg_arg)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_arg) op:Equal rhs:{(ArrayLiteralPart)} spids:[208])]
      spids: [208]
    )
    (FuncDef
      name: _Dbg_save_handler
      body: 
        (BraceGroup
          children: [
            (C {(typeset)} {(-r)} {(Lit_VarLike "sig=") ($ VSub_Number "$1")})
            (C {(typeset)} {(Lit_VarLike "old_handler=") (SQ )})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:old_handler_test)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(trap)} {(-p)} {($ VSub_Name "$sig")})]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [239 245]
                      )
                    }
                  spids: [238]
                )
              ]
              spids: [238]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Name "$old_handler")})
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(typeset)} {(-a)} {(old_hand_a)})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:old_hand_a)
                          op: Equal
                          rhs: {(ArrayLiteralPart words:[{($ VSub_Name "$old_handler")}])}
                          spids: [270]
                        )
                      ]
                      spids: [270]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:old_handler)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(_Dbg_subst_handler_var)} 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name old_hand_a>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)}))
                                            spids: [280 285]
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [277 286]
                              )
                            }
                          spids: [276]
                        )
                      ]
                      spids: [276]
                    )
                    (C {(typeset)} {(-r)} 
                      {(Lit_VarLike "decl_cmd=") 
                        (DQ ("typeset -r _Dbg_old_") (${ VSub_Name sig) ("_handler='") 
                          ($ VSub_Name "$old_handler") ("'")
                        )
                      }
                    )
                    (C {(eval)} {($ VSub_Name "$decl_cmd")})
                  ]
                  spids: [-1 260]
                )
              ]
              spids: [-1 310]
            )
          ]
          spids: [220]
        )
      spids: [216 219]
    )
    (FuncDef
      name: _Dbg_subst_handler_var
      body: 
        (BraceGroup
          children: [
            (C {(typeset)} {(-i)} {(i)})
            (C {(typeset)} {(Lit_VarLike "result=") (SQ )})
            (ForEach
              iter_name: arg
              iter_words: [{($ VSub_Star "$*")}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {($ VSub_Name "$arg")}
                      arms: [
                        (case_arm
                          pat_list: [{(SQ <"$LINENO">)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:arg)
                                  op: Equal
                                  rhs: {(SQ <"${BASH_LINENO[0]}">)}
                                  spids: [372]
                                )
                              ]
                              spids: [372]
                            )
                          ]
                          spids: [366 369 378 -1]
                        )
                        (case_arm
                          pat_list: [{(SQ <"${BASH_SOURCE[0]}">)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:arg)
                                  op: Equal
                                  rhs: {(SQ <"${BASH_SOURCE[1]}">)}
                                  spids: [388]
                                )
                              ]
                              spids: [388]
                            )
                          ]
                          spids: [382 385 394 -1]
                        )
                        (case_arm
                          pat_list: [{(SQ <"${FUNCNAME[0]}">)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:arg)
                                  op: Equal
                                  rhs: {(SQ <"${FUNCNAME[1]}">)}
                                  spids: [404]
                                )
                              ]
                              spids: [404]
                            )
                          ]
                          spids: [398 401 410 -1]
                        )
                        (case_arm
                          pat_list: [{(SQ <"${BASH_LINENO[0]}">)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:arg)
                                  op: Equal
                                  rhs: {(SQ <"${BASH_LINENO[1]}">)}
                                  spids: [420]
                                )
                              ]
                              spids: [420]
                            )
                          ]
                          spids: [414 417 426 -1]
                        )
                      ]
                      spids: [358 362 429]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {($ VSub_Name "$result")}
                                      right: {(SQ )}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:result)
                                  op: Equal
                                  rhs: {($ VSub_Name "$arg")}
                                  spids: [450]
                                )
                              ]
                              spids: [450]
                            )
                          ]
                          spids: [-1 447]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:result)
                              op: Equal
                              rhs: {(DQ ($ VSub_Name "$result") (" ") ($ VSub_Name "$arg"))}
                              spids: [457]
                            )
                          ]
                          spids: [457]
                        )
                      ]
                      spids: [454 465]
                    )
                  ]
                  spids: [355 468]
                )
              spids: [350 353]
            )
            (C {(echo)} {($ VSub_Name "$result")})
          ]
          spids: [328]
        )
      spids: [324 327]
    )
    (FuncDef
      name: _Dbg_exit_handler
      body: 
        (BraceGroup
          children: [
            (C {(typeset)} {(-i)} {(Lit_VarLike "_Dbg_debugged_exit_code=") ($ VSub_QMark "$?")})
            (C {(set)} {(Lit_Other "+") (x)} {(Lit_Other "+") (v)} {(Lit_Other "+") (u)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name _Dbg_sig_print>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [530 535]
                                  )
                                }
                              right: {(DQ (print))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(_Dbg_msg)} {(DQ ("Program received signal EXIT (0)..."))})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name _Dbg_sig_show_stack>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                            spids: [565 570]
                                          )
                                        }
                                      right: {(DQ (showstack))}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [(C {(_Dbg_do_backtrace)} {(0)})]
                          spids: [-1 582]
                        )
                      ]
                      spids: [-1 590]
                    )
                  ]
                  spids: [-1 547]
                )
              ]
              spids: [-1 593]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: {($ VSub_Name "$_Dbg_old_EXIT_handler")}
                              right: {(SQ )}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(eval)} {($ VSub_Name "$_Dbg_old_EXIT_handler")})]
                  spids: [-1 612]
                )
              ]
              spids: [-1 620]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobNEqual
                                  left: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name _Dbg_sig_stop>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [641 646]
                                      )
                                    }
                                  right: {(DQ (stop))}
                                )
                            )
                            (AndOr
                              children: [
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_NEqual
                                      left: (ArithVarRef name:_Dbg_QUIT_LEVELS)
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                )
                                (DParen
                                  child: (ArithVarRef name:_Dbg_QUIT_ON_QUIT)
                                )
                              ]
                              op_id: Op_DPipe
                            )
                          ]
                          op_id: Op_DPipe
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(_Dbg_do_quit)})]
                  spids: [-1 684]
                )
              ]
              spids: [-1 694]
            )
            (C {(typeset)} {(Lit_VarLike "term_msg=") (DQ (normally))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: {($ VSub_Name "$_Dbg_debugged_exit_code")}
                              right: {(0)}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:term_msg)
                          op: Equal
                          rhs: {(DQ ("with code ") ($ VSub_Name "$_Dbg_debugged_exit_code"))}
                          spids: [732]
                        )
                      ]
                      spids: [732]
                    )
                  ]
                  spids: [-1 729]
                )
              ]
              spids: [-1 739]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithVarRef name:BASH_SUBSHELL)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(_Dbg_msg)} 
                      {
                        (DQ ("Debugged program terminated ") ($ VSub_Name "$term_msg") 
                          (". Use q to quit or R to restart.")
                        )
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_Dbg_running)
                          op: Equal
                          rhs: {(0)}
                          spids: [781]
                        )
                      ]
                      spids: [781]
                    )
                    (While
                      cond: [(Sentence child:(C {(Lit_Other ":")}) terminator:<Op_Semi ";">)]
                      body: (DoGroup children:[(C {(_Dbg_process_commands)})] spids:[791797])
                    )
                  ]
                  spids: [-1 766]
                )
              ]
              spids: [-1 800]
            )
          ]
          spids: [488]
        )
      spids: [484 487]
    )
    (FuncDef
      name: _Dbg_sig_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: [842]
                )
              ]
              spids: [842]
            )
            (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
            )
            (C {(shopt)} {(-s)} {(extdebug)})
            (C {(typeset)} {(-r)} {(-i)} {(Lit_VarLike "_Dbg_signum=") ($ VSub_Number "$1")})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name _Dbg_sig_print>
                                        bracket_op: 
                                          (ArrayIndex
                                            expr: (ArithWord w:{($ VSub_Name "$_Dbg_signum")})
                                          )
                                        spids: [904 909]
                                      )
                                    }
                                  right: {(DQ (print))}
                                )
                            )
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name _Dbg_sig_stop>
                                        bracket_op: 
                                          (ArrayIndex
                                            expr: (ArithWord w:{($ VSub_Name "$_Dbg_signum")})
                                          )
                                        spids: [925 930]
                                      )
                                    }
                                  right: {(DQ (stop))}
                                )
                            )
                          ]
                          op_id: Op_DPipe
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(typeset)} {(-r)} 
                      {(Lit_VarLike "name=") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(_Dbg_signum2name)} {($ VSub_Name "$_Dbg_signum")})]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [950 954]
                        )
                      }
                    )
                    (C {(_Dbg_msg)} 
                      {
                        (DQ ("Program received signal ") ($ VSub_Name "$name") (" (") 
                          ($ VSub_Name "$_Dbg_signum") (")...")
                        )
                      }
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name _Dbg_sig_show_stack>
                                            bracket_op: 
                                              (ArrayIndex
                                                expr: (ArithWord w:{($ VSub_Name "$_Dbg_signum")})
                                              )
                                            spids: [976 981]
                                          )
                                        }
                                      right: {(DQ (showstack))}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:_Dbg_stack_pos)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [996]
                                )
                              ]
                              spids: [996]
                            )
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:_Dbg_stack_size)
                                  right: 
                                    (ArithWord
                                      w: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name FUNCNAME>
                                            prefix_op: VSub_Pound
                                            bracket_op: (WholeArray op_id:Lit_At)
                                            spids: [1005 1011]
                                          )
                                        }
                                    )
                                )
                            )
                            (C {(_Dbg_do_backtrace)})
                          ]
                          spids: [-1 993]
                        )
                      ]
                      spids: [-1 1019]
                    )
                  ]
                  spids: [-1 942]
                )
              ]
              spids: [-1 1022]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name _Dbg_sig_stop>
                                    bracket_op: 
                                      (ArrayIndex
                                        expr: (ArithWord w:{($ VSub_Name "$_Dbg_signum")})
                                      )
                                    spids: [1029 1034]
                                  )
                                }
                              right: {(DQ (stop))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(shift)})
                    (C {(_Dbg_save_args)} {(DQ ($ VSub_At "$@"))})
                    (C {(_Dbg_set_debugger_entry)})
                    (C {(_Dbg_hook_enter_debugger)} {(SQ <"on receiving a signal">)} {(SQ <noprint>)})
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {($ VSub_Name "$_Dbg_continue_rc")}
                    )
                  ]
                  spids: [-1 1046]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_LBracket
                              left: (ArithVarRef name:_Dbg_sig_old_handler)
                              right: (ArithVarRef name:_Dbg_signum)
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(eval)} 
                      {
                        (BracedVarSub
                          token: <VSub_Name _Dbg_sig_old_handler>
                          bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$_Dbg_signum")}))
                          spids: [1113 1118]
                        )
                      }
                    )
                  ]
                  spids: [1094 1108]
                )
              ]
              spids: [-1 1121]
            )
            (C {(_Dbg_set_to_return_from_debugger)} {(1)})
            (ControlFlow
              token: <ControlFlow_Return return>
              arg_word: {($ VSub_Name "$_Dbg_debugged_exit_code")}
            )
          ]
          spids: [822]
        )
      spids: [818 821]
    )
    (FuncDef
      name: _Dbg_err_handler
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: {($ VSub_Name "$_Dbg_old_ERR_handler")}
                              right: {(SQ )}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(eval)} {($ VSub_Name "$_Dbg_old_ERR_handler")})]
                  spids: [-1 1158]
                )
              ]
              spids: [-1 1166]
            )
            (C {(_Dbg_msg)} 
              {
                (DQ ("Error occured at ") 
                  (BracedVarSub
                    token: <VSub_Name BASH_SOURCE>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)}))
                    spids: [1173 1178]
                  ) (":") 
                  (BracedVarSub
                    token: <VSub_Name BASH_LINENO>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)}))
                    spids: [1180 1185]
                  )
                )
              }
            )
            (C {(_Dbg_process_commands)})
          ]
          spids: [1140]
        )
      spids: [1136 1139]
    )
    (FuncDef
      name: _Dbg_signum2name
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: (C {(typeset)} {(-i)} {(-r)} {(Lit_VarLike "signum=") ($ VSub_Number "$1")})
              terminator: <Op_Semi ";">
            )
            (SimpleCommand
              words: [{(builtin)} {(kill)} {(-l)} {($ VSub_Name "$signum")}]
              redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[1226])]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_QMark "$?")})
          ]
          spids: [1204]
        )
      spids: [1200 1203]
    )
    (FuncDef
      name: _Dbg_name2signum
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: (C {(typeset)} {(-r)} {(Lit_VarLike "signame=") ($ VSub_Number "$1")})
              terminator: <Op_Semi ";">
            )
            (SimpleCommand
              words: [{(builtin)} {(kill)} {(-l)} {($ VSub_Name "$signame")}]
              redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[1267])]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_QMark "$?")})
          ]
          spids: [1247]
        )
      spids: [1243 1246]
    )
    (FuncDef
      name: _Dbg_subexit_handler
      body: 
        (BraceGroup
          children: [
            (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: [1297 1302]
                                      )
                                    }
                                  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: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [-1 1322]
                )
              ]
              spids: [-1 1330]
            )
            (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: [-1 1351]
                )
              ]
              spids: [-1 1359]
            )
          ]
          spids: [1282]
        )
      spids: [1278 1281]
    )
    (FuncDef
      name: _Dbg_init_trap
      body: 
        (BraceGroup
          children: [
            (C {(typeset)} {(-r)} {(Lit_VarLike "name=") ($ VSub_Number "$1")})
            (C {(typeset)} {(-i)} {(-r)} 
              {(Lit_VarLike "signum=") 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(_Dbg_name2signum)} {($ VSub_Name "$name")})]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [1392 1396]
                )
              }
            )
            (Sentence
              child: 
                (C 
                  {(_Dbg_sig_print) (Lit_Other "[") ($ VSub_Name "$signum") (Lit_Other "]") 
                    (Lit_Other "=") ($ VSub_Number "$2")
                  }
                )
              terminator: <Op_Semi ";">
            )
            (Sentence
              child: 
                (C 
                  {(_Dbg_sig_show_stack) (Lit_Other "[") ($ VSub_Name "$signum") (Lit_Other "]") 
                    (Lit_Other "=") ($ VSub_Number "$3")
                  }
                )
              terminator: <Op_Semi ";">
            )
            (Sentence
              child: 
                (C 
                  {(_Dbg_sig_stop) (Lit_Other "[") ($ VSub_Name "$signum") (Lit_Other "]") 
                    (Lit_Other "=") ($ VSub_Number "$4")
                  }
                )
              terminator: <Op_Semi ";">
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithVarRef name:signum)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(trap)} {(SQ <"_Dbg_exit_handler \"$BASH_COMMAND\"">)} {(EXIT)})]
                  spids: [-1 1463]
                )
              ]
              else_action: [
                (C {(typeset)} 
                  {(Lit_VarLike "trap_cmd=") 
                    (DQ ("trap '_Dbg_sig_handler ") ($ VSub_Name "$signum") (" ") 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (BASH_COMMAND) 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("@") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("' ") ($ VSub_Name "$name")
                    )
                  }
                )
                (C {(eval)} {($ VSub_Name "$trap_cmd")})
              ]
              spids: [1475 1504]
            )
          ]
          spids: [1374]
        )
      spids: [1370 1373]
    )
    (FuncDef
      name: _Dbg_init_default_traps
      body: 
        (BraceGroup
          children: [
            (C {(_Dbg_init_trap)} {(EXIT)} {(DQ (noprint))} {(DQ (nostack))} {(DQ (stop))})
            (C {(_Dbg_init_trap)} {(ILL)} {(DQ (print))} {(DQ (showstack))} {(DQ (stop))})
            (C {(_Dbg_init_trap)} {(INT)} {(DQ (print))} {(DQ (showstack))} {(DQ (stop))})
            (C {(_Dbg_init_trap)} {(QUIT)} {(DQ (print))} {(DQ (showstack))} {(DQ (stop))})
            (C {(_Dbg_init_trap)} {(TERM)} {(DQ (print))} {(DQ (showstack))} {(DQ (stop))})
            (C {(_Dbg_init_trap)} {(TRAP)} {(DQ (print))} {(DQ (showstack))} {(DQ (stop))})
          ]
          spids: [1513]
        )
      spids: [1509 1512]
    )
  ]
)