# gdb-like "commands" debugger command. # # Copyright (C) 2002, 2003, 2004, 2005, 2006, 2008 Rocky Bernstein # # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place, Suite 330, Boston, # MA 02111 USA. _Dbg_help_add commands \ 'commands [BKPT-NUM] Set commands to be executed when a breakpoint is hit. Without BKPT-NUM, the targeted breakpoint is the last one set. The commands themselves follow starting on the next line. Type a line containing "end" to indicate the end of them. Give "silent" as the first line to make the breakpoint silent; then no output is printed when it is hit, except what the commands print.' proc _Dbg_do_commands { eval $_seteglob typeset num=$1 typeset -i found=0 match $num { with $int_pat if [[ -z ${_Dbg_brkpt_file[$num]} ]] { _Dbg_errmsg "No breakpoint number $num." return 1 } sh-expr 'found=1' with * _Dbg_errmsg "Invalid entry number skipped: $num" } eval $_resteglob if sh-expr ' found )' { setglobal _Dbg_brkpt_commands_defining = '1' setglobal _Dbg_brkpt_commands_current = $num compat array-assign _Dbg_brkpt_commands_end '$num' $(#_Dbg_brkpt_commands[@]) compat array-assign _Dbg_brkpt_commands_start '$num' $(_Dbg_brkpt_commands_end[$num]) _Dbg_msg "Type commands for when breakpoint $found hit, one per line." setglobal _Dbg_prompt = ''>'' return 0 } }