(command.CommandList children: [ (C {<typeset>} {<Id.Lit_VarLike '_Dbg_RESTART_COMMAND='> (SQ )}) (C {<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_set_debug='> <0>}) (C {<typeset>} {<Id.Lit_VarLike '_Dbg_stop_reason='> (SQ )}) (C {<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_restore_debug_trap='> <1>}) (C {<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_inside_skip='> <0>}) (C {<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_continue_rc='> <-1>}) (command.ShFunction name: _Dbg_debug_trap_handler body: (BraceGroup doc_token: <Id.Ignored_Comment _> children: [ (C {<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_debugged_exit_code='> ($ Id.VSub_QMark '$?')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_old_set_opts) op: assign_op.Equal rhs: {($ Id.VSub_Hyphen '$-')} spids: [220] ) ] ) (command.Simple words: [{<shopt>} {<nullglob>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (C {<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_old_set_nullglob='> ($ Id.VSub_QMark '$?')}) (C {<shopt>} {<-u>} {<nullglob>}) (C {<shopt>} {<-s>} {<extdebug>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: <Id.Lit_ArithVarLike _Dbg_set_debug> ) ) (C {<set>} {<Id.Lit_Other '+'> <x>} {<Id.Lit_Other '+'> <v>} {<Id.Lit_Other '+'> <u>}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: <Id.VSub_Name FUNCNAME> bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 1>} ) ) } right: {<_Dbg_> <Id.Lit_Other '*'>} ) ) (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: <Id.Lit_ArithVarLike _Dbg_set_debug> ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_Dbg_set_to_return_from_debugger>} {<0>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [295 324] ) ] ) (C {<_Dbg_set_debugger_entry>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_continue_rc) op: assign_op.Equal rhs: {<_Dbg_inside_skip>} spids: [353] ) ] ) (C {<shift>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_bash_command) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [366] ) ] ) (C {<shift>}) (C {<_Dbg_save_args>} {(DQ ($ Id.VSub_At '$@'))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: <Id.Lit_ArithVarLike _Dbg_step_ignore> right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDMinus child: <Id.Lit_ArithVarLike _Dbg_step_ignore> ) ) (C {<_Dbg_write_journal>} {(DQ <'_Dbg_step_ignore='> ($ Id.VSub_DollarName '$_Dbg_step_ignore'))} ) ] spids: [386 399] ) ] ) (C {<typeset>} {<-i>} {<_Dbg_i>}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike _Dbg_i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike _Dbg_i> right: <Id.Lit_ArithVarLike _Dbg_watch_max> ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike _Dbg_i> ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} { (DQ (braced_var_sub token: <Id.VSub_Name _Dbg_watch_exp> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$_Dbg_i')} ) ) ) } {<Id.Lit_RBracket ']'>} ) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (braced_var_sub token: <Id.VSub_Name _Dbg_watch_enable> bracket_op: (bracket_op.ArrayIndex expr: <Id.Lit_ArithVarLike _Dbg_i> ) ) } right: {<0>} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<typeset>} {<Id.Lit_VarLike 'new_val='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_Dbg_get_watch_exp_eval>} {($ Id.VSub_DollarName '$_Dbg_i')}) ) } ) (C {<typeset>} {<Id.Lit_VarLike 'old_val='> (braced_var_sub token: <Id.VSub_Name _Dbg_watch_val> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$_Dbg_i')} ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName '$old_val')} right: {($ Id.VSub_DollarName '$new_val')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (arith_expr.Binary op_id: Id.Arith_LBracket left: <Id.Lit_ArithVarLike _Dbg_watch_count> right: <Id.Lit_ArithVarLike _Dbg_i> ) ) ) (C {<_Dbg_msg>} { (DQ <'Watchpoint '> ($ Id.VSub_DollarName '$_Dbg_i') <': '> (braced_var_sub token: <Id.VSub_Name _Dbg_watch_exp> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$_Dbg_i')} ) ) <' changed:'> ) } ) (C {<_Dbg_msg>} { (DQ <' old value: \''> ($ Id.VSub_DollarName '$old_val') <'\''> ) } ) (C {<_Dbg_msg>} { (DQ <' new value: \''> ($ Id.VSub_DollarName '$new_val') <'\''> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_watch_val index: {($ Id.VSub_DollarName '$_Dbg_i')} ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$new_val')} spids: [591] ) ] ) (C {<_Dbg_hook_enter_debugger>} {(SQ <'on a watch trigger'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$_Dbg_continue_rc')} ) ] spids: [530 544] ) ] ) ] spids: [468 506] ) ] ) ] ) ) (C {<typeset>} {<full_filename>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:full_filename) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_Dbg_is_file>} {(DQ ($ Id.VSub_DollarName '$_Dbg_frame_last_filename'))}) ) } spids: [626] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName '$full_filename')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_file2canonic index: {($ Id.VSub_DollarName '$_Dbg_frame_last_filename')} ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$full_filename'))} spids: [651] ) ] ) ] spids: [636 648] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: <Id.Lit_ArithVarLike _Dbg_action_count> right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<_Dbg_hook_action_hit>} {(DQ ($ Id.VSub_DollarName '$full_filename'))})] spids: [669 682] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: <Id.Lit_ArithVarLike _Dbg_brkpt_count> right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<_Dbg_hook_breakpoint_hit>} {(DQ ($ Id.VSub_DollarName '$full_filename'))} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: <Id.Lit_ArithVarLike _Dbg_step_force> ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<typeset>} {<Id.Lit_VarLike '_Dbg_frame_previous_file='> (DQ ($ Id.VSub_DollarName '$_Dbg_frame_last_filename')) } ) (C {<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_frame_previous_lineno='> (DQ ($ Id.VSub_DollarName '$_Dbg_frame_last_lineno')) } ) ] spids: [733 742] ) ] ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (arith_expr.Binary op_id: Id.Arith_LBracket left: <Id.Lit_ArithVarLike _Dbg_brkpt_counts> right: <Id.Lit_ArithVarLike _Dbg_brkpt_num> ) ) ) (C {<_Dbg_write_journal>} { (DQ <'_Dbg_brkpt_counts['> ($ Id.VSub_DollarName '$_Dbg_brkpt_num') <']='> (braced_var_sub token: <Id.VSub_Name _Dbg_brkpt_counts> bracket_op: (bracket_op.ArrayIndex expr: <Id.Lit_ArithVarLike _Dbg_brkpt_num> ) ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.Binary op_id: Id.Arith_LBracket left: <Id.Lit_ArithVarLike _Dbg_brkpt_onetime> right: <Id.Lit_ArithVarLike _Dbg_brkpt_num> ) right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_stop_reason) op: assign_op.Equal rhs: {(SQ <'at a breakpoint that has since been deleted'>)} spids: [822] ) ] ) (C {<_Dbg_delete_brkpt_entry>} {($ Id.VSub_DollarName '$_Dbg_brkpt_num')} ) ] spids: [801 819] ) ] else_action: [ (C {<_Dbg_msg>} { (DQ <'Breakpoint '> ($ Id.VSub_DollarName '$_Dbg_brkpt_num') <' hit ('> (braced_var_sub token: <Id.VSub_Name _Dbg_brkpt_counts> bracket_op: (bracket_op.ArrayIndex expr: <Id.Lit_ArithVarLike _Dbg_brkpt_num> ) ) <' times).'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_stop_reason) op: assign_op.Equal rhs: { (DQ <'at breakpoint '> ($ Id.VSub_DollarName '$_Dbg_brkpt_num') ) } spids: [854] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LBracket left: <Id.Lit_ArithVarLike _Dbg_brkpt_commands_end> right: {($ Id.VSub_DollarName '$_Dbg_brkpt_num')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_Dbg_bp_commands>} {($ Id.VSub_DollarName '$_Dbg_brkpt_num')}) ] spids: [872 886] ) ] ) (C {<_Dbg_hook_enter_debugger>} {(DQ ($ Id.VSub_DollarName '$_Dbg_stop_reason'))} ) (C {<_Dbg_set_to_return_from_debugger>} {<1>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$_Dbg_continue_rc')} ) ] spids: [721 730] ) ] ) ] spids: [705 718] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: <Id.Lit_ArithVarLike _Dbg_step_ignore> right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child:<Id.Lit_ArithVarLike _Dbg_step_force>) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: <Id.Lit_ArithVarLike _Dbg_last_lineno> right: <Id.Lit_ArithVarLike _Dbg_frame_last_lineno> ) ) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { ($ Id.VSub_DollarName '$_Dbg_last_source_file' ) } right: { ($ Id.VSub_DollarName '$_Dbg_frame_last_filename' ) } ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_Dbg_set_to_return_from_debugger>} {<1>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$_Dbg_continue_rc')} ) ] spids: [957 986] ) ] ) ] spids: [945 954] ) ] ) (C {<_Dbg_hook_enter_debugger>} {(SQ <'after being stepped'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$_Dbg_continue_rc')} ) ] spids: [930 942] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (braced_var_sub token: <Id.VSub_Name FUNCNAME> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: <Id.Lit_ArithVarLike _Dbg_return_level> ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_return_level) op: assign_op.Equal rhs: {<0>} spids: [1046] ) ] ) (C {<_Dbg_hook_enter_debugger>} {(SQ <'on a return'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$_Dbg_continue_rc')} ) ] spids: [1018 1039] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: {<Id.Lit_Digits 1>} ) right: <Id.Lit_ArithVarLike _Dbg_return_level> ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_Dbg_hook_enter_debugger>} {(SQ <'on fielding signal'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$_Dbg_continue_rc')} ) ] spids: [1062 1078] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: <Id.Lit_ArithVarLike _Dbg_set_linetrace> right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: <Id.Lit_ArithVarLike _Dbg_set_linetrace_delay> ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<sleep>} {($ Id.VSub_DollarName '$_Dbg_linetrace_delay')})] spids: [1111 1120] ) ] ) (C {<_Dbg_print_linetrace>}) (C {<_Dbg_set_to_return_from_debugger>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_last_lineno) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name BASH_LINENO> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) } spids: [1143] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$_Dbg_continue_rc')} ) ] spids: [1097 1108] ) ] ) (C {<_Dbg_set_to_return_from_debugger>} {<1>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$_Dbg_continue_rc')} ) ] ) ) (command.ShFunction name: _Dbg_hook_action_hit body: (BraceGroup children: [ (C {<typeset>} {<Id.Lit_VarLike 'full_filename='> (DQ ($ Id.VSub_Number '$1'))}) (C {<typeset>} {<Id.Lit_VarLike 'lineno='> ($ Id.VSub_DollarName '$_Dbg_frame_last_lineno')} ) (C {<typeset>} {<-a>} {<linenos>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName '$full_filename')} ) ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<eval>} { (DQ <'linenos=('> (braced_var_sub token: <Id.VSub_Name _Dbg_action_file2linenos> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$full_filename')}) ) <')'> ) } ) (C {<typeset>} {<-a>} {<action_nos>}) (C {<eval>} { (DQ <'action_nos=('> (braced_var_sub token: <Id.VSub_Name _Dbg_action_file2action> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$full_filename')}) ) <')'> ) } ) (C {<typeset>} {<-i>} {<_Dbg_i>}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike _Dbg_i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike _Dbg_i> right: { (braced_var_sub token: <Id.VSub_Name linenos> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike _Dbg_i> ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.Binary op_id: Id.Arith_LBracket left: <Id.Lit_ArithVarLike linenos> right: <Id.Lit_ArithVarLike _Dbg_i> ) right: <Id.Lit_ArithVarLike lineno> ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike _Dbg_action_num> right: (arith_expr.Binary op_id: Id.Arith_LBracket left: <Id.Lit_ArithVarLike action_nos> right: <Id.Lit_ArithVarLike _Dbg_i> ) ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:stmt) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name _Dbg_action_stmt> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$_Dbg_action_num')} ) ) ) } spids: [1333] ) ] ) (C {<.>} {(${ Id.VSub_Name _Dbg_libdir) <'/dbg-set-d-vars.inc'>}) (C {<eval>} {(DQ ($ Id.VSub_DollarName '$stmt'))}) (C {<_Dbg_set_debugger_internal>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1297 1315] ) ] ) ] ) ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>}) ] ) ) (command.ShFunction name: _Dbg_hook_breakpoint_hit body: (BraceGroup children: [ (C {<typeset>} {<Id.Lit_VarLike 'full_filename='> (DQ ($ Id.VSub_Number '$1'))}) (C {<typeset>} {<Id.Lit_VarLike 'lineno='> ($ Id.VSub_DollarName '$_Dbg_frame_last_lineno')} ) (C {<typeset>} {<-a>} {<linenos>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName '$full_filename')} ) ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (braced_var_sub token: <Id.VSub_Name _Dbg_brkpt_file2linenos> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$full_filename')} ) ) } ) ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<eval>} { (DQ <'linenos=('> (braced_var_sub token: <Id.VSub_Name _Dbg_brkpt_file2linenos> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$full_filename')}) ) <')'> ) } ) (C {<typeset>} {<-a>} {<brkpt_nos>}) (C {<eval>} { (DQ <'brkpt_nos=('> (braced_var_sub token: <Id.VSub_Name _Dbg_brkpt_file2brkpt> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$full_filename')}) ) <')'> ) } ) (C {<typeset>} {<-i>} {<i>}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: { (braced_var_sub token: <Id.VSub_Name linenos> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.Binary op_id: Id.Arith_LBracket left: <Id.Lit_ArithVarLike linenos> right: <Id.Lit_ArithVarLike i> ) right: <Id.Lit_ArithVarLike lineno> ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike _Dbg_brkpt_num> right: (arith_expr.Binary op_id: Id.Arith_LBracket left: <Id.Lit_ArithVarLike brkpt_nos> right: <Id.Lit_ArithVarLike i> ) ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LBracket left: <Id.Lit_ArithVarLike _Dbg_brkpt_enable> right: <Id.Lit_ArithVarLike _Dbg_brkpt_num> ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1578 1591] ) ] ) ] spids: [1538 1556] ) ] ) ] ) ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>}) ] ) ) (command.ShFunction name: _Dbg_hook_enter_debugger body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_stop_reason) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [1625] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(SQ <noprint>)} right: {($ Id.VSub_Number '$2')} ) ) (C {<_Dbg_print_location_and_command>}) ] ) (C {<_Dbg_process_commands>}) (C {<_Dbg_set_to_return_from_debugger>} {<1>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$_Dbg_continue_rc')} ) ] ) ) (command.ShFunction name: _Dbg_cleanup body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName '$_Dbg_evalfile')} ) ) (command.Simple words: [{<rm>} {<-f>} {($ Id.VSub_DollarName '$_Dbg_evalfile')}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) (C {<set>} {<Id.Lit_Other '+'> <u>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName '$_Dbg_EXECUTION_STRING')} ) ) (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName '$_Dbg_script_file')} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<rm>} {($ Id.VSub_DollarName '$_Dbg_script_file')})] spids: [1699 1721] ) ] ) (C {<_Dbg_erase_journals>}) (C {<_Dbg_restore_user_vars>}) ] ) ) (command.ShFunction name: _Dbg_cleanup2 body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName '$_Dbg_evalfile')} ) ) (command.Simple words: [{<rm>} {<-f>} {($ Id.VSub_DollarName '$_Dbg_evalfile')}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) (C {<_Dbg_erase_journals>}) (C {<trap>} {<->} {<EXIT>}) ] ) ) ] )