(command.CommandList children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<_Dbg_old_setopts>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_VarLike '_Dbg_old_EXIT_handler='> (SQ )}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_QUIT_ON_QUIT='> <0>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_program_exit_code='> <0>}] redirects: [] do_fork: T ) (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-a>} {<_Dbg_sig_print>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_sig_print='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_sig_print='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_Dbg_sig_print='> name:_Dbg_sig_print) op: assign_op.Equal rhs: {(ShArrayLiteral left:<Id.Op_LParen _> words:[] right:<Id.Right_ShArrayLiteral _>)} ) ] redirects: [] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-a>} {<_Dbg_sig_stop>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_sig_stop='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_sig_stop='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_Dbg_sig_stop='> name:_Dbg_sig_stop) op: assign_op.Equal rhs: {(ShArrayLiteral left:<Id.Op_LParen _> words:[] right:<Id.Right_ShArrayLiteral _>)} ) ] redirects: [] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-a>} {<_Dbg_sig_show_stack>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_sig_show_stack='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_sig_show_stack='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_sig_show_stack='> name: _Dbg_sig_show_stack ) op: assign_op.Equal rhs: {(ShArrayLiteral left:<Id.Op_LParen _> words:[] right:<Id.Right_ShArrayLiteral _>)} ) ] redirects: [] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-a>} {<_Dbg_sig_passthrough>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_sig_passthrough='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_sig_passthrough='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_sig_passthrough='> name: _Dbg_sig_passthrough ) op: assign_op.Equal rhs: {(ShArrayLiteral left:<Id.Op_LParen _> words:[] right:<Id.Right_ShArrayLiteral _>)} ) ] redirects: [] ) ] ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_return_level='> <0>}] redirects: [] do_fork: T ) (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-a>} {<_Dbg_arg>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_arg='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_arg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_Dbg_arg='> name:_Dbg_arg) op: assign_op.Equal rhs: {(ShArrayLiteral left:<Id.Op_LParen _> words:[] right:<Id.Right_ShArrayLiteral _>)} ) ] redirects: [] ) ] ) (command.ShFunction name_tok: <_Dbg_save_handler> name: _Dbg_save_handler body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-r>} {<Id.Lit_VarLike 'sig='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_VarLike 'old_handler='> (SQ )}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'old_handler_test='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old_handler_test='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'old_handler_test='> name: old_handler_test ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <trap> more_env: [] words: [{<trap>} {<-p>} {($ Id.VSub_DollarName sig)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName old_handler)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-a>} {<old_hand_a>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'old_hand_a='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old_hand_a='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old_hand_a='> name:old_hand_a) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [{($ Id.VSub_DollarName old_handler)}] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'old_handler='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old_handler='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'old_handler='> name: old_handler ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <_Dbg_subst_handler_var> more_env: [] words: [ {<_Dbg_subst_handler_var>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name old_hand_a> var_name: old_hand_a bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-r>} {<Id.Lit_VarLike 'decl_cmd='> (DQ <'typeset -r _Dbg_old_'> (${ Id.VSub_Name sig) <'_handler=\''> ($ Id.VSub_DollarName old_handler) <'\''> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {($ Id.VSub_DollarName decl_cmd)}] redirects: [] do_fork: T ) ] spids: [248 260] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_Dbg_subst_handler_var> name: _Dbg_subst_handler_var body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-i>} {<i>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_VarLike 'result='> (SQ )}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [arg] iterable: (for_iter.Words words:[{($ Id.VSub_Star '*')}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ <'$LINENO'>)}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'arg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'arg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg) op: assign_op.Equal rhs: {(SQ <'${BASH_LINENO[0]}'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ <'${BASH_SOURCE[0]}'>)}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'arg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'arg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg) op: assign_op.Equal rhs: {(SQ <'${BASH_SOURCE[1]}'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ <'${FUNCNAME[0]}'>)}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'arg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'arg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg) op: assign_op.Equal rhs: {(SQ <'${FUNCNAME[1]}'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ <'${BASH_LINENO[0]}'>)}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'arg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'arg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg) op: assign_op.Equal rhs: {(SQ <'${BASH_LINENO[1]}'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName result)} right: {(SQ )} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'result='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'result='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'result='> name:result) op: assign_op.Equal rhs: {($ Id.VSub_DollarName arg)} ) ] redirects: [] ) ] spids: [432 447] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'result='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'result='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'result='> name:result) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName result) <' '> ($ Id.VSub_DollarName arg))} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName result)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_Dbg_exit_handler> name: _Dbg_exit_handler body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_debugged_exit_code='> ($ Id.VSub_QMark '?')} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<Id.Lit_Other '+'> <x>} {<Id.Lit_Other '+'> <v>} {<Id.Lit_Other '+'> <u>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _Dbg_sig_print> var_name: _Dbg_sig_print bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) } right: {(DQ <print>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [{<_Dbg_msg>} {(DQ <'Program received signal EXIT (0)...'>)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _Dbg_sig_show_stack> var_name: _Dbg_sig_show_stack bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) right: <Id.Right_DollarBrace '}'> ) } right: {(DQ <showstack>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <_Dbg_do_backtrace> more_env: [] words: [{<_Dbg_do_backtrace>} {<0>}] redirects: [] do_fork: T ) ] spids: [561 582] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [526 547] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName _Dbg_old_EXIT_handler)} right: {(SQ )} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {($ Id.VSub_DollarName _Dbg_old_EXIT_handler)}] redirects: [] do_fork: T ) ] spids: [597 612] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _Dbg_sig_stop> var_name: _Dbg_sig_stop bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) right: <Id.Right_DollarBrace '}'> ) } right: {(DQ <stop>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_NEqual left: ($ Id.Lit_ArithVarLike _Dbg_QUIT_LEVELS) right: {<Id.Lit_Digits 0>} ) right: <Id.Op_DRightParen _> redirects: [] ) (command.DParen left: <Id.Op_DLeftParen _> child: ($ Id.Lit_ArithVarLike _Dbg_QUIT_ON_QUIT) right: <Id.Op_DRightParen _> redirects: [] ) ] ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <_Dbg_do_quit> more_env: [] words: [{<_Dbg_do_quit>}] redirects: [] do_fork: T ) ] spids: [637 684] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_VarLike 'term_msg='> (DQ <normally>)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName _Dbg_debugged_exit_code)} right: {<0>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'term_msg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'term_msg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'term_msg='> name:term_msg) op: assign_op.Equal rhs: {(DQ <'with code '> ($ Id.VSub_DollarName _Dbg_debugged_exit_code))} ) ] redirects: [] ) ] spids: [715 729] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_DEqual left: ($ Id.Lit_ArithVarLike BASH_SUBSHELL) right: {<Id.Lit_Digits 0>} ) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [ {<_Dbg_msg>} { (DQ <'Debugged program terminated '> ($ Id.VSub_DollarName term_msg) <'. Use q to quit or R to restart.'> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_running='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_running='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_running='> name: _Dbg_running ) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <_Dbg_process_commands> more_env: [] words: [{<_Dbg_process_commands>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) ] spids: [751 766] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_Dbg_sig_handler> name: _Dbg_sig_handler body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_debugged_exit_code='> ($ Id.VSub_QMark '?')} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_old_set_opts='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_old_set_opts='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_old_set_opts='> name: _Dbg_old_set_opts ) op: assign_op.Equal rhs: {($ Id.VSub_Hyphen -)} ) ] redirects: [] ) (command.AndOr children: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Unary op_id: Id.Arith_Bang child: ($ Id.Lit_ArithVarLike _Dbg_set_debug) ) right: <Id.Op_DRightParen _> redirects: [] ) (command.Simple blame_tok: <set> more_env: [] words: [ {<set>} {<Id.Lit_Other '+'> <x>} {<Id.Lit_Other '+'> <v>} {<Id.Lit_Other '+'> <u>} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <shopt> more_env: [] words: [{<shopt>} {<-s>} {<extdebug>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-r>} {<-i>} {<Id.Lit_VarLike '_Dbg_signum='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _Dbg_sig_print> var_name: _Dbg_sig_print bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName _Dbg_signum)} ) right: <Id.Right_DollarBrace '}'> ) } right: {(DQ <print>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _Dbg_sig_stop> var_name: _Dbg_sig_stop bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName _Dbg_signum)} ) right: <Id.Right_DollarBrace '}'> ) } right: {(DQ <stop>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ops: [<Id.Op_DPipe _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-r>} {<Id.Lit_VarLike 'name='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <_Dbg_signum2name> more_env: [] words: [{<_Dbg_signum2name>} {($ Id.VSub_DollarName _Dbg_signum)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [ {<_Dbg_msg>} { (DQ <'Program received signal '> ($ Id.VSub_DollarName name) <' ('> ($ Id.VSub_DollarName _Dbg_signum) <')...'> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _Dbg_sig_show_stack> var_name: _Dbg_sig_show_stack bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName _Dbg_signum)} ) right: <Id.Right_DollarBrace '}'> ) } right: {(DQ <showstack>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_stack_pos='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_stack_pos='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_stack_pos='> name: _Dbg_stack_pos ) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike _Dbg_stack_size) right: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) right: <Id.Op_DRightParen _> redirects: [] ) (command.Simple blame_tok: <_Dbg_do_backtrace> more_env: [] words: [{<_Dbg_do_backtrace>}] redirects: [] do_fork: T ) ] spids: [972 993] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [900 942] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _Dbg_sig_stop> var_name: _Dbg_sig_stop bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName _Dbg_signum)} ) right: <Id.Right_DollarBrace '}'> ) } right: {(DQ <stop>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_save_args> more_env: [] words: [{<_Dbg_save_args>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_set_debugger_entry> more_env: [] words: [{<_Dbg_set_debugger_entry>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_hook_enter_debugger> more_env: [] words: [ {<_Dbg_hook_enter_debugger>} {(SQ <'on receiving a signal'>)} {(SQ <noprint>)} ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName _Dbg_continue_rc)} ) ] spids: [1025 1046] ) (IfArm keyword: <Id.KW_Elif elif> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_LBracket left: ($ Id.Lit_ArithVarLike _Dbg_sig_old_handler) right: ($ Id.Lit_ArithVarLike _Dbg_signum) ) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _Dbg_sig_old_handler> var_name: _Dbg_sig_old_handler bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName _Dbg_signum)} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) ] spids: [1094 1108] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <_Dbg_set_to_return_from_debugger> more_env: [] words: [{<_Dbg_set_to_return_from_debugger>} {<1>}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName _Dbg_debugged_exit_code)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_Dbg_err_handler> name: _Dbg_err_handler body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName _Dbg_old_ERR_handler)} right: {(SQ )} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {($ Id.VSub_DollarName _Dbg_old_ERR_handler)}] redirects: [] do_fork: T ) ] spids: [1143 1158] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [ {<_Dbg_msg>} { (DQ <'Error occured at '> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name BASH_SOURCE> var_name: BASH_SOURCE bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>}) right: <Id.Right_DollarBrace '}'> ) <':'> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name BASH_LINENO> var_name: BASH_LINENO bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>}) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_process_commands> more_env: [] words: [{<_Dbg_process_commands>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_Dbg_signum2name> name: _Dbg_signum2name body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-i>} {<-r>} {<Id.Lit_VarLike 'signum='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <builtin> more_env: [] words: [{<builtin>} {<kill>} {<-l>} {($ Id.VSub_DollarName signum)}] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_QMark '?')} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_Dbg_name2signum> name: _Dbg_name2signum body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-r>} {<Id.Lit_VarLike 'signame='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <builtin> more_env: [] words: [{<builtin>} {<kill>} {<-l>} {($ Id.VSub_DollarName signame)}] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_QMark '?')} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_Dbg_subexit_handler> name: _Dbg_subexit_handler body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FUNCNAME> var_name: FUNCNAME bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarBrace '}'> ) } right: {<_Dbg_> <Id.Lit_Other '*'>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Unary op_id: Id.Arith_Bang child: ($ Id.Lit_ArithVarLike _Dbg_set_debug) ) right: <Id.Op_DRightParen _> redirects: [] ) ] ops: [<Id.Op_DAmp _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})] spids: [1293 1322] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <_Dbg_source_journal> more_env: [] words: [{<_Dbg_source_journal>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_Great left: ($ Id.Lit_ArithVarLike _Dbg_QUIT_LEVELS) right: {<Id.Lit_Digits 0>} ) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <_Dbg_do_quit> more_env: [] words: [{<_Dbg_do_quit>} {($ Id.VSub_DollarName _Dbg_debugged_exit_code)}] redirects: [] do_fork: T ) ] spids: [1336 1351] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_Dbg_init_trap> name: _Dbg_init_trap body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-r>} {<Id.Lit_VarLike 'name='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-i>} {<-r>} {<Id.Lit_VarLike 'signum='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <_Dbg_name2signum> more_env: [] words: [{<_Dbg_name2signum>} {($ Id.VSub_DollarName name)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Sentence child: (command.ShAssignment left: <Id.Lit_ArrayLhsOpen '_Dbg_sig_print['> pairs: [ (AssignPair left: <Id.Lit_ArrayLhsOpen '_Dbg_sig_print['> lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen '_Dbg_sig_print['> name: _Dbg_sig_print index: {($ Id.VSub_DollarName signum)} ) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment left: <Id.Lit_ArrayLhsOpen '_Dbg_sig_show_stack['> pairs: [ (AssignPair left: <Id.Lit_ArrayLhsOpen '_Dbg_sig_show_stack['> lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen '_Dbg_sig_show_stack['> name: _Dbg_sig_show_stack index: {($ Id.VSub_DollarName signum)} ) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment left: <Id.Lit_ArrayLhsOpen '_Dbg_sig_stop['> pairs: [ (AssignPair left: <Id.Lit_ArrayLhsOpen '_Dbg_sig_stop['> lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen '_Dbg_sig_stop['> name: _Dbg_sig_stop index: {($ Id.VSub_DollarName signum)} ) op: assign_op.Equal rhs: {($ Id.VSub_Number 4)} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_DEqual left: ($ Id.Lit_ArithVarLike signum) right: {<Id.Lit_Digits 0>} ) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <trap> more_env: [] words: [{<trap>} {(SQ <'_Dbg_exit_handler "$BASH_COMMAND"'>)} {<EXIT>}] redirects: [] do_fork: T ) ] spids: [1448 1463] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<Id.Lit_VarLike 'trap_cmd='> (DQ <'trap \'_Dbg_sig_handler '> ($ Id.VSub_DollarName signum) <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <BASH_COMMAND> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\' '> ($ Id.VSub_DollarName name) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {($ Id.VSub_DollarName trap_cmd)}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_Dbg_init_default_traps> name: _Dbg_init_default_traps body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_Dbg_init_trap> more_env: [] words: [{<_Dbg_init_trap>} {<EXIT>} {(DQ <noprint>)} {(DQ <nostack>)} {(DQ <stop>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_init_trap> more_env: [] words: [{<_Dbg_init_trap>} {<ILL>} {(DQ <print>)} {(DQ <showstack>)} {(DQ <stop>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_init_trap> more_env: [] words: [{<_Dbg_init_trap>} {<INT>} {(DQ <print>)} {(DQ <showstack>)} {(DQ <stop>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_init_trap> more_env: [] words: [{<_Dbg_init_trap>} {<QUIT>} {(DQ <print>)} {(DQ <showstack>)} {(DQ <stop>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_init_trap> more_env: [] words: [{<_Dbg_init_trap>} {<TERM>} {(DQ <print>)} {(DQ <showstack>)} {(DQ <stop>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_init_trap> more_env: [] words: [{<_Dbg_init_trap>} {<TRAP>} {(DQ <print>)} {(DQ <showstack>)} {(DQ <stop>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )