(CommandList children: [ (C {(_Dbg_help_add)} {(ControlFlow_Break break)} { (SQ <'**break** [*loc-spec*]\n'> <'\n'> <'Set a breakpoint at *loc-spec*.\n'> <'\n'> <'If no location specification is given, use the current line.\n'> <'\n'> <'Multiple breakpoints at one place are permitted, and useful if conditional.\n'> <'\n'> <'See also:\n'> <'---------\n'> <'\n'> <'"tbreak" and "continue"'> ) } ) (C {(_Dbg_help_add)} {(tbreak)} { (SQ <'**tbreak* [*loc-spec*]\n'> <'\n'> <'Set a one-time breakpoint at *loc-spec*.\n'> <'\n'> <'Like "break" except the breakpoint is only temporary,\n'> <'so it will be deleted when hit. Equivalent to "break" followed\n'> <'by using "delete" on the breakpoint number.\n'> <'\n'> <'If no location specification is given, use the current line.'> ) } ) (FuncDef name: _Dbg_do_tbreak body: (BraceGroup children: [ (C {(_Dbg_do_break_common)} {(1)} {($ VSub_At '$@')}) (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_QMark '$?')}) ] spids: [95] ) spids: [91 94] ) (FuncDef name: _Dbg_do_break body: (BraceGroup children: [ (C {(_Dbg_do_break_common)} {(0)} {($ VSub_At '$@')}) (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_QMark '$?')}) ] spids: [116] ) spids: [112 115] ) (FuncDef name: _Dbg_do_break_common body: (BraceGroup children: [ (Assignment keyword: Assign_Typeset flags: [-i] pairs: [ (assign_pair lhs: (LhsName name:is_temp) op: Equal rhs: {($ VSub_Number '$1')} spids: [154] ) ] spids: [150] ) (C {(shift)}) (Assignment keyword: Assign_Typeset pairs: [(assign_pair lhs:(LhsName name:linespec) op:Equal spids:[164])] spids: [162] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithWord w:{($ VSub_Pound '$#')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [169 178] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:linespec) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [185] ) ] spids: [185] ) ] spids: [16777215 182] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:linespec) op: Equal rhs: {(DQ ($ VSub_Name '$_Dbg_frame_last_lineno'))} spids: [194] ) ] spids: [194] ) ] spids: [191 200] ) (C {(shift)}) (Assignment keyword: Assign_Typeset pairs: [ (assign_pair lhs: (LhsName name:condition) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [210 215] ) } spids: [209] ) ] spids: [207] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$linespec'))} right: {(SQ <if>)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:linespec) op: Equal rhs: {($ VSub_Name '$_Dbg_frame_last_lineno')} spids: [238] ) ] spids: [238] ) ] spids: [16777215 235] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$condition')}) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:condition) op: Equal rhs: {(1)} spids: [257] ) ] spids: [257] ) ] spids: [242 254] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$condition')} right: {(SQ <if>)} ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(shift)})] spids: [261 277] ) ] spids: [16777215 283] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$condition')}) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:condition) op: Equal rhs: {(1)} spids: [301] ) ] spids: [301] ) ] spids: [16777215 298] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:condition) op: Equal rhs: {(DQ ($ VSub_Star '$*'))} spids: [308] ) ] spids: [308] ) ] spids: [305 314] ) (Assignment keyword: Assign_Typeset pairs: [(assign_pair lhs:(LhsName name:filename) op:Equal spids:[320])] spids: [318] ) (Assignment keyword: Assign_Typeset flags: [-i] pairs: [(assign_pair lhs:(LhsName name:line_number) op:Equal spids:[327])] spids: [323] ) (Assignment keyword: Assign_Typeset pairs: [(assign_pair lhs:(LhsName name:full_filename) op:Equal spids:[332])] spids: [330] ) (C {(_Dbg_linespec_setup)} {(DQ ($ VSub_Name '$linespec'))}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_n child: {(DQ ($ VSub_Name '$full_filename'))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithVarRef name:line_number) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [363 372] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_errmsg)} {(SQ <'There is no line 0 to break at.'>)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 376] ) ] else_action: [ (C {(_Dbg_check_line)} {($ VSub_Name '$line_number')} {(DQ ($ VSub_Name '$full_filename'))} ) (AndOr ops: [Op_DAmp] children: [ (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_QMark '$?')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [403 412] ) (C {(_Dbg_set_brkpt)} {(DQ ($ VSub_Name '$full_filename'))} {(DQ ($ VSub_Name '$line_number'))} {($ VSub_Name '$is_temp')} {(DQ ($ VSub_Name '$condition'))} ) ] ) ] spids: [391 435] ) ] spids: [16777215 358] ) ] else_action: [ (C {(_Dbg_file_not_read_in)} {(DQ ($ VSub_Name '$full_filename'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(2)}) ] spids: [438 453] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [146] ) spids: [142 145] ) (FuncDef name: _Dbg_do_clear_brkpt body: (BraceGroup children: [ (Assignment keyword: Assign_Typeset flags: [-r] pairs: [ (assign_pair lhs: (LhsName name:n) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name '$_Dbg_frame_lineno')} ) spids: [481 485] ) } spids: [480] ) ] spids: [476] ) (Assignment keyword: Assign_Typeset pairs: [(assign_pair lhs:(LhsName name:filename) op:Equal spids:[491])] spids: [489] ) (Assignment keyword: Assign_Typeset flags: [-i] pairs: [(assign_pair lhs:(LhsName name:line_number) op:Equal spids:[498])] spids: [494] ) (Assignment keyword: Assign_Typeset pairs: [(assign_pair lhs:(LhsName name:full_filename) op:Equal spids:[503])] spids: [501] ) (C {(_Dbg_linespec_setup)} {($ VSub_Name '$n')}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Name '$full_filename')}) ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithVarRef name:line_number) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [530 539] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_msg)} {(DQ ('There is no line 0 to clear.'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 543] ) ] else_action: [ (C {(_Dbg_check_line)} {($ VSub_Name '$line_number')} {(DQ ($ VSub_Name '$full_filename'))} ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_QMark '$?')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [572 581] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_unset_brkpt)} {(DQ ($ VSub_Name '$full_filename'))} {(DQ ($ VSub_Name '$line_number'))} ) (Assignment keyword: Assign_Typeset flags: [-r] pairs: [ (assign_pair lhs: (LhsName name:found) op: Equal rhs: {($ VSub_QMark '$?')} spids: [603] ) ] spids: [599] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name '$found')} right: {(0)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_msg)} { (DQ ('Removed ') ($ VSub_Name '$found') (' breakpoint(s).')) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_Name '$found')} ) ] spids: [16777215 621] ) ] spids: [16777215 638] ) ] spids: [16777215 585] ) ] spids: [16777215 641] ) ] spids: [558 644] ) ] spids: [16777215 525] ) ] else_action: [ (C {(_Dbg_file_not_read_in)} {(DQ ($ VSub_Name '$full_filename'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [647 662] ) ] spids: [473] ) spids: [469 472] ) (FuncDef name: _Dbg_do_list_brkpt body: (BraceGroup children: [ (C {(eval)} {(DQ ($ VSub_Name '$_seteglob'))}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithWord w:{($ VSub_Pound '$#')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [690 699] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Typeset pairs: [ (assign_pair lhs: (LhsName name:brkpt_num) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [708] ) ] spids: [706] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name '$brkpt_num')} right: {($ VSub_Name '$int_pat')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_errmsg)} {(DQ ('Bad breakpoint number ') ($ VSub_Name '$brkpt_num') (.))} ) ] spids: [16777215 727] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_z child: { (BracedVarSub token: <VSub_Name _Dbg_brkpt_file> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$brkpt_num')}) ) spids: [745 750] ) } ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_errmsg)} { (DQ ('Breakpoint entry ') ($ VSub_Name '$brkpt_num') (' is not set.')) } ) ] spids: [739 756] ) ] else_action: [ (Assignment keyword: Assign_Typeset flags: [-r -i] pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: {($ VSub_Name '$brkpt_num')} spids: [777] ) ] spids: [771] ) (Assignment keyword: Assign_Typeset pairs: [ (assign_pair lhs: (LhsName name:source_file) op: Equal rhs: { (BracedVarSub token: <VSub_Name _Dbg_brkpt_file> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [784 789] ) } spids: [783] ) ] spids: [781] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source_file) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(_Dbg_adjust_filename)} {(DQ ($ VSub_Name '$source_file'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [793 799] ) } spids: [792] ) ] spids: [792] ) (C {(_Dbg_section)} {(DQ ('Num Type Disp Enb What'))}) (C {(_Dbg_printf)} {(DQ ('%-3d breakpoint %-4s %-3s %s:%s'))} {($ VSub_Name '$i')} { (BracedVarSub token: <VSub_Name _Dbg_keep> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name _Dbg_brkpt_onetime> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [822 827] ) } ) ) spids: [819 829] ) } { (BracedVarSub token: <VSub_Name _Dbg_yn> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name _Dbg_brkpt_enable> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [836 841] ) } ) ) spids: [833 843] ) } {(DQ ($ VSub_Name '$source_file'))} { (BracedVarSub token: <VSub_Name _Dbg_brkpt_line> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [851 856] ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name _Dbg_brkpt_cond> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [863 868] ) } right: {(SQ <1>)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_printf)} {(DQ (Lit_Other '\\') ('tstop only if %s'))} { (DQ (BracedVarSub token: <VSub_Name _Dbg_brkpt_cond> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [891 896] ) ) } ) ] spids: [16777215 880] ) ] spids: [16777215 900] ) (C {(_Dbg_print_brkpt_count)} { (BracedVarSub token: <VSub_Name _Dbg_brkpt_count> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [905 910] ) } ) ] spids: [768 913] ) (C {(eval)} {(DQ ($ VSub_Name '$_resteglob'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [16777215 703] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name _Dbg_brkpt_line> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [932 938] ) } ) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [930 945] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Typeset flags: [-i] pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[955])] spids: [951] ) (C {(_Dbg_section)} {(DQ ('Num Type Disp Enb What'))}) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) cond: (ArithBinary op_id: Arith_LessEqual left: (ArithVarRef name:i) right: (ArithVarRef name:_Dbg_brkpt_max) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (Assignment keyword: Assign_Typeset pairs: [ (assign_pair lhs: (LhsName name:source_file) op: Equal rhs: { (BracedVarSub token: <VSub_Name _Dbg_brkpt_file> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [996 1001] ) } spids: [995] ) ] spids: [993] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_n child: { (BracedVarSub token: <VSub_Name _Dbg_brkpt_line> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [1010 1015] ) } ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source_file) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(_Dbg_adjust_filename)} {(DQ ($ VSub_Name '$source_file'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1025 1031] ) } spids: [1024] ) ] spids: [1024] ) (C {(_Dbg_printf)} {(DQ ('%-3d breakpoint %-4s %-3s %s:%s'))} {($ VSub_Name '$i')} { (BracedVarSub token: <VSub_Name _Dbg_keep> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name _Dbg_brkpt_onetime> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [1047 1052] ) } ) ) spids: [1044 1054] ) } { (BracedVarSub token: <VSub_Name _Dbg_yn> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name _Dbg_brkpt_enable> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [1061 1066] ) } ) ) spids: [1058 1068] ) } {(DQ ($ VSub_Name '$source_file'))} { (BracedVarSub token: <VSub_Name _Dbg_brkpt_line> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [1076 1081] ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name _Dbg_brkpt_cond> bracket_op: (ArrayIndex expr: (ArithWord w: {($ VSub_Name '$i')} ) ) spids: [1088 1093] ) } right: {(SQ <1>)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_printf)} {(DQ (Lit_Other '\\') ('tstop only if %s'))} { (DQ (BracedVarSub token: <VSub_Name _Dbg_brkpt_cond> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [1116 1121] ) ) } ) ] spids: [16777215 1105] ) ] spids: [16777215 1125] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithBinary op_id: Arith_LBracket left: (ArithVarRef name:_Dbg_brkpt_counts) right: (ArithWord w:{($ VSub_Name '$i')}) ) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [1130 1142] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_print_brkpt_count)} { (BracedVarSub token: <VSub_Name _Dbg_brkpt_counts> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [1151 1156] ) } ) ] spids: [16777215 1146] ) ] spids: [16777215 1159] ) ] spids: [16777215 1021] ) ] spids: [16777215 1162] ) ] spids: [990 1165] ) ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [928 948] ) ] else_action: [ (C {(_Dbg_msg)} {(SQ <'No breakpoints have been set.'>)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [1173 1188] ) ] spids: [677] ) spids: [673 676] ) (C {(_Dbg_alias_add)} {(b)} {(ControlFlow_Break break)}) ] )