(CommandList children: [ (C {(_Dbg_help_add)} {(handle)} { (DQ ('**handle** *signal* *action*\n') ('\n') ('Specify how to handle *signal*.\n') ('\n') ('*signal* is a signal name like SIGSEGV, but numeric signals like 11\n') ('(which is usually equivalent on ') (Lit_Other '\\') ('*nix systems) is okay too.\n') ('\n') ('*action* is one of ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (stop) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (', ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (nostop) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (', ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (print) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (', and\n') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (noprint) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('. ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (Stop) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' indicates entering debugger if this signal\n') ('happens. ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (Print) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' indicates printing a message if this signal is\n') ('encountered. ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (Stack) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' is like ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (print) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' but except the entire call\n') ('stack is printed. Prefacing these actions with ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (no) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' indicates not to\n') ('do the indicated action.') ) } ) (FuncDef name: _Dbg_do_handle body: (BraceGroup children: [ (Assignment keyword: Assign_Typeset pairs: [ (assign_pair lhs: (LhsName name:sig) op: Equal rhs: {($ VSub_Number '$1')} spids: [134] ) ] spids: [132] ) (Assignment keyword: Assign_Typeset pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: {($ VSub_Number '$2')} spids: [140] ) ] spids: [138] ) (Assignment keyword: Assign_Typeset flags: [-i] pairs: [(assign_pair lhs:(LhsName name:signum) op:Equal spids:[148])] spids: [144] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$sig')})) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_errmsg)} {(DQ ('Missing signal name or signal number.'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 163] ) ] spids: [16777215 178] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$sig')} right: {($ VSub_Name '$int_pat')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:signame) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(_Dbg_signum2name)} {($ VSub_Name '$sig')})] ) left_token: <Left_CommandSub '$('> spids: [199 203] ) } spids: [198] ) ] spids: [198] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithWord w:{($ VSub_QMark '$?')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_errmsg)} {(DQ ('Bad signal number: ') ($ VSub_Name '$sig'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(2)} ) ] spids: [16777215 221] ) ] spids: [16777215 237] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:signum) op: Equal rhs: {(sig)} spids: [240] ) ] spids: [240] ) ] spids: [16777215 195] ) ] else_action: [ (Sentence child: (Assignment keyword: Assign_Typeset pairs: [(assign_pair lhs:(LhsName name:signum) op:Equal spids:[249])] spids: [247] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:signum) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(_Dbg_name2signum)} {($ VSub_Name '$sig')})] ) left_token: <Left_CommandSub '$('> spids: [254 258] ) } spids: [253] ) ] spids: [253] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithWord w:{($ VSub_QMark '$?')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_errmsg)} {(DQ ('Bad signal name: ') ($ VSub_Name '$sig'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(3)} ) ] spids: [16777215 276] ) ] spids: [16777215 292] ) ] spids: [244 295] ) (Case to_match: {($ VSub_Name '$cmd')} arms: [ (case_arm pat_list: [{(nop)} {(nopr)} {(nopri)} {(noprin)} {(noprint)}] action: [ (C {(_Dbg_sig_print) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') (SQ <noprint>) } ) (C {(_Dbg_sig_stop) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') (SQ <stop>) } ) ] spids: [306 324 351 16777215] ) (case_arm pat_list: [{(nosta)} {(nostac)} {(nostack)}] action: [ (C {(_Dbg_sig_show_stack) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') (SQ <nostack>) } ) ] spids: [355 365 378 16777215] ) (case_arm pat_list: [{(nosto)} {(nostop)}] action: [ (C {(_Dbg_sig_stop) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') (SQ <nostop>) } ) ] spids: [382 388 401 16777215] ) (case_arm pat_list: [{(p)} {(pr)} {(pri)} {(prin)} {(print)}] action: [ (C {(_Dbg_sig_print) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') (SQ <print>) } ) ] spids: [405 423 436 16777215] ) (case_arm pat_list: [{(sta)} {(stac)} {(stack)}] action: [ (C {(_Dbg_sig_show_stack) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') (SQ <showstack>) } ) ] spids: [440 450 463 16777215] ) (case_arm pat_list: [{(sto)} {(stop)}] action: [ (C {(_Dbg_sig_stop) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') (SQ <stop>) } ) (C {(_Dbg_sig_print) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') (SQ <print>) } ) ] spids: [467 473 500 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithUnary op_id:Arith_Bang child:(ArithVarRef name:cmd)) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_errmsg)} { (DQ ( 'Need to give a command: stop, nostop, stack, nostack, print, noprint' ) ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(4)} ) ] spids: [16777215 520] ) ] else_action: [ (C {(_Dbg_errmsg)} {(DQ ('Invalid handler command ') ($ VSub_Name '$cmd'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(5)} ) ] spids: [537 553] ) ] spids: [503 505 556 16777215] ) ] spids: [299 303 559] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [129] ) spids: [125 128] ) ] )