(command.CommandList children: [ (C {<_Dbg_help_add>} {<kill>} { (DQ <'**kill** [*signal-number*]\n'> <'\n'> <'Send this process a POSIX signal (\'9\' for \'SIGKILL\' or \'kill -SIGKILL\')\n'> <'\n'> <'9 is a non-maskable interrupt that terminates the program. If program is threaded it may\n'> <'be expedient to use this command to terminate the program.\n'> <'\n'> <'However other signals, such as those that allow for the debugged to handle them can be\n'> <'sent.\n'> <'\n'> <'Giving a negative number is the same as using its positive value.\n'> <'\n'> <'Examples:\n'> <'---------\n'> <'\n'> <' kill # non-interuptable, nonmaskable kill\n'> <' kill 9 # same as above\n'> <' kill -9 # same as above\n'> <' kill 15 # nicer, maskable TERM signal\n'> <' kill! 15 # same as above, but no confirmation\n'> <'\n'> <'See also:\n'> <'---------\n'> <'\n'> <'**quit** for less a forceful termination command.\n'> <'**run** is a way to restart the debugged program.\n'> <'Also similar is the **signal** command.'> ) } ) (command.ShFunction name: _Dbg_do_kill body: (BraceGroup children: [ (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.VSub_Pound '$#')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_Dbg_errmsg>} {(DQ <'Got '> ($ Id.VSub_Pound '$#') <' parameters, but need 0 or 1.'>)} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [104 116] ) ] ) (C {<typeset>} {<Id.Lit_VarLike '_Dbg_prompt_output='> (braced_var_sub token: <Id.VSub_Name _Dbg_tty> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<Id.Lit_Slash '/'> <dev> <Id.Lit_Slash '/'> <null>} ) ) } ) (C {<typeset>} {<Id.Lit_VarLike 'signal='> (SQ <-9>)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Pound '$#')} right: {<Id.Lit_Digits 1>} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:signal) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [168] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (braced_var_sub token: <Id.VSub_Name signal> suffix_op: (suffix_op.Slice begin: {<Id.Lit_Digits 0>} length: {<Id.Lit_Digits 1>} ) ) } right: {(SQ <->)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_Dbg_errmsg>} { (DQ <'Kill signal ('> ($ Id.VSub_DollarName '$signal') <') should start with a \'-\''> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<2>} ) ] spids: [175 197] ) ] ) (C {<_Dbg_confirm>} { (DQ <'Send kill signal '> (${ Id.VSub_Name signal) <' which may terminate the debugger? (y/N): '> ) } {(SQ <N>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$_Dbg_response')} right: {<Id.Lit_Other '['> <yY> <Id.Lit_Other ']'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {($ Id.VSub_DollarName '$signal')} arms: [ (case_arm pat_list: [{<-9>} {<-SEGV>}] action: [(C {<_Dbg_cleanup2>})] spids: [260 266 272 -1] ) ] ) (C {<kill>} {($ Id.VSub_DollarName '$signal')} {($ Id.VSub_Dollar '$$')}) ] spids: [234 250] ) ] else_action: [ (C {<_Dbg_msg>} {(DQ <'Kill not done - not confirmed.'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<3>} ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) ] )