(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: [ (C {(typeset)} {(-i)} {(Lit_VarLike "is_temp=") ($ VSub_Number "$1")}) (C {(shift)}) (C {(typeset)} {(linespec)}) (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)}) ) ) 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: [-1 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)}) (C {(typeset)} {(Lit_VarLike "condition=") (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [210 215] ) } ) (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: [-1 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: [-1 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: [-1 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] ) (C {(typeset)} {(filename)}) (C {(typeset)} {(-i)} {(line_number)}) (C {(typeset)} {(full_filename)}) (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)}) ) ) 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: [-1 376] ) ] else_action: [ (C {(_Dbg_check_line)} {($ VSub_Name "$line_number")} {(DQ ($ VSub_Name "$full_filename"))} ) (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_QMark "$?")}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) (C {(_Dbg_set_brkpt)} {(DQ ($ VSub_Name "$full_filename"))} {(DQ ($ VSub_Name "$line_number"))} {($ VSub_Name "$is_temp")} {(DQ ($ VSub_Name "$condition"))} ) ] op_id: Op_DAmp ) ] spids: [391 435] ) ] spids: [-1 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: [ (C {(typeset)} {(-r)} {(Lit_VarLike "n=") (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name "$_Dbg_frame_lineno")} ) spids: [481 485] ) } ) (C {(typeset)} {(filename)}) (C {(typeset)} {(-i)} {(line_number)}) (C {(typeset)} {(full_filename)}) (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)}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(_Dbg_msg)} {(DQ ("There is no line 0 to clear."))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [-1 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)}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(_Dbg_unset_brkpt)} {(DQ ($ VSub_Name "$full_filename"))} {(DQ ($ VSub_Name "$line_number"))} ) (C {(typeset)} {(-r)} {(Lit_VarLike "found=") ($ VSub_QMark "$?")}) (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: [-1 621] ) ] spids: [-1 638] ) ] spids: [-1 585] ) ] spids: [-1 641] ) ] spids: [558 644] ) ] spids: [-1 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)}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(typeset)} {(Lit_VarLike "brkpt_num=") (DQ ($ VSub_Number "$1"))}) (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: [-1 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: [ (C {(typeset)} {(-r)} {(-i)} {(Lit_VarLike "i=") ($ VSub_Name "$brkpt_num")}) (C {(typeset)} {(Lit_VarLike "source_file=") (BracedVarSub token: <VSub_Name _Dbg_brkpt_file> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [784 789] ) } ) (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 (EscapedLiteralPart token:<Lit_EscapedChar "\\t">) ("stop only if %s") ) } { (DQ (BracedVarSub token: <VSub_Name _Dbg_brkpt_cond> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [891 896] ) ) } ) ] spids: [-1 880] ) ] spids: [-1 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: [-1 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)}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(typeset)} {(-i)} {(i)}) (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: [ (C {(typeset)} {(Lit_VarLike "source_file=") (BracedVarSub token: <VSub_Name _Dbg_brkpt_file> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [996 1001] ) } ) (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 (EscapedLiteralPart token:<Lit_EscapedChar "\\t">) ("stop only if %s") ) } { (DQ (BracedVarSub token: <VSub_Name _Dbg_brkpt_cond> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name "$i")}) ) spids: [1116 1121] ) ) } ) ] spids: [-1 1105] ) ] spids: [-1 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)}) ) ) 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: [-1 1146] ) ] spids: [-1 1159] ) ] spids: [-1 1021] ) ] spids: [-1 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)}) ] )