summaryrefslogtreecommitdiff
path: root/examples/bashdb
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2010-10-11 14:49:26 -0700
committerStephen Hemminger <stephen.hemminger@vyatta.com>2010-10-11 15:19:40 -0700
commit011c1d1c0766c65517ebd495465c99e86edb63ec (patch)
tree30d8f6a13235af90897c3223554871ef52225462 /examples/bashdb
parent40cfaccf7b178b6239b5cd0013ef80b7ff8e503e (diff)
downloadvyatta-bash-011c1d1c0766c65517ebd495465c99e86edb63ec.tar.gz
vyatta-bash-011c1d1c0766c65517ebd495465c99e86edb63ec.zip
Update to bash-4.1
Diffstat (limited to 'examples/bashdb')
-rw-r--r--examples/bashdb/PERMISSION27
-rw-r--r--examples/bashdb/README3
-rwxr-xr-xexamples/bashdb/bashdb581
-rw-r--r--examples/bashdb/bashdb.el177
4 files changed, 0 insertions, 788 deletions
diff --git a/examples/bashdb/PERMISSION b/examples/bashdb/PERMISSION
deleted file mode 100644
index 4e9460c..0000000
--- a/examples/bashdb/PERMISSION
+++ /dev/null
@@ -1,27 +0,0 @@
-From mikel@ora.com Tue Aug 1 12:13:20 1995
-Flags: 10
-Return-Path: mikel@ora.com
-Received: from ruby.ora.com (ruby.ora.com [198.112.208.25]) by odin.INS.CWRU.Edu with ESMTP (8.6.12+cwru/CWRU-2.1-ins)
- id MAA01565; Tue, 1 Aug 1995 12:13:18 -0400 (from mikel@ora.com for <chet@odin.INS.CWRU.Edu>)
-Received: (from fax@localhost) by ruby.ora.com (8.6.12/8.6.11) with UUCP id MAA23251; Tue, 1 Aug 1995 12:07:51 -0400
-Received: by los.ora.com (4.1/Spike-2.1)
- id AA00672; Tue, 1 Aug 95 08:57:32 EDT
-Date: Tue, 1 Aug 95 08:57:32 EDT
-From: mikel@ora.com (Michael Loukides)
-Message-Id: <9508011257.AA00672@los.ora.com>
-Subject: Re: Ksh debugger from Rosenblatt's book [for bash]
-To: Chet Ramey <chet@odin.INS.CWRU.Edu>
-Cc: cmarie@ora.com, cam@iinet.com.au, brosenblatt@tm.com
-In-Reply-To: Chet Ramey <chet@odin.INS.CWRU.Edu>, Mon, 31 Jul 1995 16:22:48 -0400
-
- I've modified a (modified) version of Bill Rosenblatt's ksh debugger
- to work with bash-2.0. Does ORA have any problem with me distributing
- it with bash-2.0?
-
-That's great!
-
-Go ahead and circulate it; in fact, we should probably grab it and
-stick it in our ftp archive, and put a reference to it in the book.
-(Too late to actually discuss the thing, at least for this edition).
--------
-
diff --git a/examples/bashdb/README b/examples/bashdb/README
deleted file mode 100644
index 2f643d1..0000000
--- a/examples/bashdb/README
+++ /dev/null
@@ -1,3 +0,0 @@
-This is a sample implementation of a bash debugger. It is not the same
-as the project available from http://bashdb.sourceforge.net, and has been
-deprecated in favor of that implementation.
diff --git a/examples/bashdb/bashdb b/examples/bashdb/bashdb
deleted file mode 100755
index 560cb7c..0000000
--- a/examples/bashdb/bashdb
+++ /dev/null
@@ -1,581 +0,0 @@
-#! /bin/bash
-# bashdb - Bash shell debugger
-#
-# Adapted from an idea in O'Reilly's `Learning the Korn Shell'
-# Copyright (C) 1993-1994 O'Reilly and Associates, Inc.
-# Copyright (C) 1998, 1999, 2001 Gary V. Vaughan <gvv@techie.com>>
-#
-# 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 of the License, 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; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# NOTE:
-#
-# This program requires bash 2.x.
-# If bash 2.x is installed as "bash2", you can invoke bashdb like this:
-#
-# DEBUG_SHELL=/bin/bash2 /bin/bash2 bashdb script.sh
-
-# TODO:
-#
-# break [regexp]
-# cond [break] [condition]
-# tbreak [regexp|+lines]
-# restart
-# Variable watchpoints
-# Instrument `source' and `.' files in $_potbelliedpig
-# be cleverer about lines we allow breakpoints to be set on
-# break [function_name]
-
-echo 'Bash Debugger version 1.2.4'
-
-export _dbname=${0##*/}
-
-if test $# -lt 1; then
- echo "$_dbname: Usage: $_dbname filename" >&2
- exit 1
-fi
-
-_guineapig=$1
-
-if test ! -r $1; then
- echo "$_dbname: Cannot read file '$_guineapig'." >&2
- exit 1
-fi
-
-shift
-
-__debug=${TMPDIR-/tmp}/bashdb.$$
-sed -e '/^# bashdb - Bash shell debugger/,/^# -- DO NOT DELETE THIS LINE -- /d' "$0" > $__debug
-cat $_guineapig >> $__debug
-exec ${DEBUG_SHELL-bash} $__debug $_guineapig "$@"
-
-exit 1
-
-# -- DO NOT DELETE THIS LINE -- The program depends on it
-
-#bashdb preamble
-# $1 name of the original guinea pig script
-
-__debug=$0
-_guineapig=$1
-__steptrap_calls=0
-
-shift
-
-shopt -s extglob # turn on extglob so we can parse the debugger funcs
-
-function _steptrap
-{
- local i=0
-
- _curline=$1
-
- if (( ++__steptrap_calls > 1 && $_curline == 1 )); then
- return
- fi
-
- if [ -n "$_disps" ]; then
- while (( $i < ${#_disps[@]} ))
- do
- if [ -n "${_disps[$i]}" ]; then
- _msg "${_disps[$i]}: \c"
- eval _msg ${_disps[$i]}
- fi
- let i=$i+1
- done
- fi
-
- if (( $_trace )); then
- _showline $_curline
- fi
-
- if (( $_steps >= 0 )); then
- let _steps="$_steps - 1"
- fi
-
- if _at_linenumbp ; then
- _msg "Reached breakpoint at line $_curline"
- _showline $_curline
- _cmdloop
- elif [ -n "$_brcond" ] && eval $_brcond; then
- _msg "Break condition $_brcond true at line $_curline"
- _showline $_curline
- _cmdloop
- elif (( $_steps == 0 )); then
- # Assuming a real script will have the "#! /bin/sh" at line 1,
- # assume that when $_curline == 1 we are inside backticks.
- if (( ! $_trace )); then
- _msg "Stopped at line $_curline"
- _showline $_curline
- fi
- _cmdloop
- fi
-}
-
-function _setbp
-{
- local i f line _x
-
- if [ -z "$1" ]; then
- _listbp
- return
- fi
-
- eval "$_seteglob"
-
- if [[ $1 == *(\+)[1-9]*([0-9]) ]]; then
- case $1 in
- +*)
- # normalize argument, then double it (+2 -> +2 + 2 = 4)
- _x=${1##*([!1-9])} # cut off non-numeric prefix
- _x=${x%%*([!0-9])} # cut off non-numeric suffix
- f=$(( $1 + $_x ))
- ;;
- *)
- f=$(( $1 ))
- ;;
- esac
-
- # find the next valid line
- line="${_lines[$f]}"
- while _invalidbreakp $f
- do
- (( f++ ))
- line="${_lines[$f]}"
- done
-
- if (( $f != $1 ))
- then
- _msg "Line $1 is not a valid breakpoint"
- fi
-
- if [ -n "${_lines[$f]}" ]; then
- _linebp[$1]=$1;
- _msg "Breakpoint set at line $f"
- else
- _msg "Breakpoints can only be set on executable lines"
- fi
- else
- _msg "Please specify a numeric line number"
- fi
-
- eval "$_resteglob"
-}
-
-function _listbp
-{
- local i
-
- if [ -n "$_linebp" ]; then
- _msg "Breakpoints:"
- for i in ${_linebp[*]}; do
- _showline $i
- done
- else
- _msg "No breakpoints have been set"
- fi
-}
-
-function _clearbp
-{
- local i
-
- if [ -z "$1" ]; then
- read -e -p "Delete all breakpoints? "
- case $REPLY in
- [yY]*)
- unset _linebp[*]
- _msg "All breakpoints have been cleared"
- ;;
- esac
- return 0
- fi
-
- eval "$_seteglob"
-
- if [[ $1 == [1-9]*([0-9]) ]]; then
- unset _linebp[$1]
- _msg "Breakpoint cleared at line $1"
- else
- _msg "Please specify a numeric line number"
- fi
-
- eval "$_resteglob"
-}
-
-function _setbc
-{
- if (( $# > 0 )); then
- _brcond=$@
- _msg "Break when true: $_brcond"
- else
- _brcond=
- _msg "Break condition cleared"
- fi
-}
-
-function _setdisp
-{
- if [ -z "$1" ]; then
- _listdisp
- else
- _disps[${#_disps[@]}]="$1"
- if (( ${#_disps[@]} < 10 ))
- then
- _msg " ${#_disps[@]}: $1"
- else
- _msg "${#_disps[@]}: $1"
- fi
- fi
-}
-
-function _listdisp
-{
- local i=0 j
-
- if [ -n "$_disps" ]; then
- while (( $i < ${#_disps[@]} ))
- do
- let j=$i+1
- if (( ${#_disps[@]} < 10 ))
- then
- _msg " $j: ${_disps[$i]}"
- else
- _msg "$j: ${_disps[$i]}"
- fi
- let i=$j
- done
- else
- _msg "No displays have been set"
- fi
-}
-
-function _cleardisp
-{
- if (( $# < 1 )) ; then
- read -e -p "Delete all display expressions? "
- case $REPLY in
- [Yy]*)
- unset _disps[*]
- _msg "All breakpoints have been cleared"
- ;;
- esac
- return 0
- fi
-
- eval "$_seteglob"
-
- if [[ $1 == [1-9]*([0-9]) ]]; then
- unset _disps[$1]
- _msg "Display $i has been cleared"
- else
- _listdisp
- _msg "Please specify a numeric display number"
- fi
-
- eval "$_resteglob"
-}
-
-# usage _ftrace -u funcname [funcname...]
-function _ftrace
-{
- local _opt=-t _tmsg="enabled" _func
- if [[ $1 == -u ]]; then
- _opt=+t
- _tmsg="disabled"
- shift
- fi
- for _func; do
- declare -f $_opt $_func
- _msg "Tracing $_tmsg for function $_func"
- done
-}
-
-function _cmdloop
-{
- local cmd args
-
- while read -e -p "bashdb> " cmd args; do
- test -n "$cmd" && history -s "$cmd $args" # save on history list
- test -n "$cmd" || { set $_lastcmd; cmd=$1; shift; args=$*; }
- if [ -n "$cmd" ]
- then
- case $cmd in
- b|br|bre|brea|break)
- _setbp $args
- _lastcmd="break $args"
- ;;
- co|con)
- _msg "ambiguous command: '$cmd', condition, continue?"
- ;;
- cond|condi|condit|conditi|conditio|condition)
- _setbc $args
- _lastcmd="condition $args"
- ;;
- c|cont|conti|contin|continu|continue)
- _lastcmd="continue"
- return
- ;;
- d)
- _msg "ambiguous command: '$cmd', delete, display?"
- ;;
- de|del|dele|delet|delete)
- _clearbp $args
- _lastcmd="delete $args"
- ;;
- di|dis|disp|displ|displa|display)
- _setdisp $args
- _lastcmd="display $args"
- ;;
- f|ft|ftr|ftra|ftrace)
- _ftrace $args
- _lastcmd="ftrace $args"
- ;;
- \?|h|he|hel|help)
- _menu
- _lastcmd="help"
- ;;
- l|li|lis|list)
- _displayscript $args
- # _lastcmd is set in the _displayscript function
- ;;
- p|pr|pri|prin|print)
- _examine $args
- _lastcmd="print $args"
- ;;
- q|qu|qui|quit)
- exit
- ;;
- s|st|ste|step|n|ne|nex|next)
- let _steps=${args:-1}
- _lastcmd="next $args"
- return
- ;;
- t|tr|tra|trac|trace)
- _xtrace
- ;;
- u|un|und|undi|undis|undisp|undispl|undispla|undisplay)
- _cleardisp $args
- _lastcmd="undisplay $args"
- ;;
- !*)
- eval ${cmd#!} $args
- _lastcmd="$cmd $args"
- ;;
- *)
- _msg "Invalid command: '$cmd'"
- ;;
- esac
- fi
- done
-}
-
-function _at_linenumbp
-{
- [[ -n ${_linebp[$_curline]} ]]
-}
-
-function _invalidbreakp
-{
- local line=${_lines[$1]}
-
- # XXX - should use shell patterns
- if test -z "$line" \
- || expr "$line" : '[ \t]*#.*' > /dev/null \
- || expr "$line" : '[ \t]*;;[ \t]*$' > /dev/null \
- || expr "$line" : '[ \t]*[^)]*)[ \t]*$' > /dev/null \
- || expr "$line" : '[ \t]*;;[ \t]*#.**$' > /dev/null \
- || expr "$line" : '[ \t]*[^)]*)[ \t]*;;[ \t]*$' > /dev/null \
- || expr "$line" : '[ \t]*[^)]*)[ \t]*;;*[ \t]*#.*$' > /dev/null
- then
- return 0
- fi
-
- return 1
-}
-
-function _examine
-{
- if [ -n "$*" ]; then
- _msg "$args: \c"
- eval _msg $args
- else
- _msg "Nothing to print"
- fi
-}
-
-function _displayscript
-{
- local i j start end bp cl
-
- if (( $# == 1 )); then # list 5 lines on either side of $1
- if [ $1 = "%" ]; then
- let start=1
- let end=${#_lines[@]}
- else
- let start=$1-5
- let end=$1+5
- fi
- elif (( $# > 1 )); then # list between start and end
- if [ $1 = "^" ]; then
- let start=1
- else
- let start=$1
- fi
-
- if [ $2 = "\$" ]; then
- let end=${#_lines[@]}
- else
- let end=$2
- fi
- else # list 5 lines on either side of current line
- let start=$_curline-5
- let end=$_curline+5
- fi
-
- # normalize start and end
- if (( $start < 1 )); then
- start=1
- fi
- if (( $end > ${#_lines[@]} )); then
- end=${#_lines[@]}
- fi
-
- cl=$(( $end - $start ))
- if (( $cl > ${LINES-24} )); then
- pager=${PAGER-more}
- else
- pager=cat
- fi
-
- i=$start
- ( while (( $i <= $end )); do
- _showline $i
- let i=$i+1
- done ) 2>&1 | $pager
-
- # calculate the next block of lines
- start=$(( $end + 1 ))
- end=$(( $start + 11 ))
- if (( $end > ${#_lines[@]} ))
- then
- end=${#_lines[@]}
- fi
-
- _lastcmd="list $start $end"
-}
-
-function _xtrace
-{
- let _trace="! $_trace"
- if (( $_trace )); then
- _msg "Execution trace on"
- else
- _msg "Execution trace off"
- fi
-}
-
-function _msg
-{
- echo -e "$@" >&2
-}
-
-function _showline
-{
- local i=0 bp=' ' line=$1 cl=' '
-
- if [[ -n ${_linebp[$line]} ]]; then
- bp='*'
- fi
-
- if (( $_curline == $line )); then
- cl=">"
- fi
-
- if (( $line < 100 )); then
- _msg "${_guineapig/*\//}:$line $bp $cl${_lines[$line]}"
- elif (( $line < 10 )); then
- _msg "${_guineapig/*\//}:$line $bp $cl${_lines[$line]}"
- elif (( $line > 0 )); then
- _msg "${_guineapig/*\//}:$line $bp $cl${_lines[$line]}"
- fi
-}
-
-function _cleanup
-{
- rm -f $__debug $_potbelliedpig 2> /dev/null
-}
-
-function _menu
-{
- _msg 'bashdb commands:
- break N set breakpoint at line N
- break list breakpoints & break condition
- condition foo set break condition to foo
- condition clear break condition
- delete N clear breakpoint at line N
- delete clear all breakpoints
- display EXP evaluate and display EXP for each debug step
- display show a list of display expressions
- undisplay N remove display expression N
- list N M display all lines of script between N and M
- list N display 5 lines of script either side of line N
- list display 5 lines if script either side of current line
- continue continue execution upto next breakpoint
- next [N] execute [N] statements (default 1)
- print expr prints the value of an expression
- trace toggle execution trace on/off
- ftrace [-u] func make the debugger step into function FUNC
- (-u turns off tracing FUNC)
- help print this menu
- ! string passes string to a shell
- quit quit'
-}
-
-shopt -u extglob
-
-HISTFILE=~/.bashdb_history
-set -o history
-set +H
-
-# strings to save and restore the setting of `extglob' in debugger functions
-# that need it
-_seteglob='local __eopt=-u ; shopt -q extglob && __eopt=-s ; shopt -s extglob'
-_resteglob='shopt $__eopt extglob'
-
-_linebp=()
-let _trace=0
-let _i=1
-
-# Be careful about quoted newlines
-_potbelliedpig=${TMPDIR-/tmp}/${_guineapig/*\//}.$$
-sed 's,\\$,\\\\,' $_guineapig > $_potbelliedpig
-
-_msg "Reading source from file: $_guineapig"
-while read; do
- _lines[$_i]=$REPLY
- let _i=$_i+1
-done < $_potbelliedpig
-
-trap _cleanup EXIT
-# Assuming a real script will have the "#! /bin/sh" at line 1,
-# don't stop at line 1 on the first run
-let _steps=1
-LINENO=-1
-trap '_steptrap $LINENO' DEBUG
diff --git a/examples/bashdb/bashdb.el b/examples/bashdb/bashdb.el
deleted file mode 100644
index 40584dd..0000000
--- a/examples/bashdb/bashdb.el
+++ /dev/null
@@ -1,177 +0,0 @@
-;;; bashdb.el --- Grand Unified Debugger mode for running bashdb
-;; Copyright (C) 2000, 2001 Masatake YAMATO
-
-;; Author: Masatake YAMATO <jet@gyve.org>
-
-;; 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 of the License, 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; if not, write to the Free Software Foundation,
-;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-;; Commentary:
-;; This program may run on Emacs 21.0.91 and XEmacs 21.1.
-;;
-;; Put
-;; (autoload 'bashdb "bashdb" "Run bashdb" t nil)
-;; to your .emacs.
-;; M-x bashdb
-;; Run bashdb (like this): bashdb target.sh
-;;
-;; About bashdb:
-;; You can get bashdb from
-;; http://www.oranda.demon.co.uk/development.html
-;;
-;; bashdb.el is based on perldb in gud.el in XEmacs 21.1.
-
-;; Revision:
-;; $Revision: 1.6 $
-;; $Log: bashdb.el,v $
-;; Revision 1.6 2001/01/06 12:18:06 masata-y
-;; Write note about XEmacs.
-;;
-;;
-
-
-;;; Code:
-(require 'gud)
-
-;; User customizable variable
-(defcustom gud-bashdb-command-name "bashdb"
- "File name for executing Bashdb."
- :type 'string
- :group 'gud)
-
-;; History of argument lists passed to bashdb.
-(defvar gud-bashdb-history nil)
-
-(defun gud-bashdb-massage-args (file args)
- (if xemacsp
- (cons (file-name-nondirectory file) args)
- args))
-
-;; There's no guarantee that Emacs will hand the filter the entire
-;; marker at once; it could be broken up across several strings. We
-;; might even receive a big chunk with several markers in it. If we
-;; receive a chunk of text which looks like it might contain the
-;; beginning of a marker, we save it here between calls to the
-;; filter.
-(if xemacsp
- (defvar gud-bashdb-marker-acc ""))
-(defun gud-bashdb-marker-acc ()
- (if xemacsp
- gud-bashdb-marker-acc
- gud-marker-acc))
-(defun gud-bashdb-marker-acc-quote ()
- (if xemacsp
- 'gud-bashdb-marker-acc
- 'gud-marker-acc))
-
-(defun gud-bashdb-marker-filter (string)
- (save-match-data
- (set (gud-bashdb-marker-acc-quote)
- (concat (gud-bashdb-marker-acc) string))
- (let ((output ""))
- ;; Process all the complete markers in this chunk.
- (while (string-match "^\\([^:\n]+\\):\\([0-9]+\\)[ *]*>.*\n"
- (gud-bashdb-marker-acc))
- (setq
- ;; Extract the frame position from the marker.
- gud-last-frame (cons
- (substring (gud-bashdb-marker-acc)
- (match-beginning 1)
- (match-end 1))
- (string-to-int
- (substring (gud-bashdb-marker-acc)
- (match-beginning 2)
- (match-end 2))))
- ;; Append any text before the marker to the output we're going
- ;; to return - we don't include the marker in this text.
- output (concat output
- (substring (gud-bashdb-marker-acc) 0 (match-beginning 0))))
- ;; Set the accumulator to the remaining text.
- (set
- (gud-bashdb-marker-acc-quote) (substring
- (gud-bashdb-marker-acc) (match-end 0))))
-
- ;; Does the remaining text look like it might end with the
- ;; beginning of another marker? If it does, then keep it in
- ;; (gud-bashdb-marker-acc) until we receive the rest of it. Since we
- ;; know the full marker regexp above failed, it's pretty simple to
- ;; test for marker starts.
- (if (string-match "^\\([^:\n]+\\):\\([0-9]+\\)[ *]*>" (gud-bashdb-marker-acc))
- (progn
- ;; Everything before the potential marker start can be output.
- (setq output (concat output (substring (gud-bashdb-marker-acc)
- 0 (match-beginning 0))))
- ;; Everything after, we save, to combine with later input.
- (set (gud-bashdb-marker-acc-quote)
- (substring (gud-bashdb-marker-acc) (match-beginning 0))))
-
- (setq output (concat output (gud-bashdb-marker-acc)))
- (set (gud-bashdb-marker-acc-quote) ""))
-
- output)))
-
-(defun gud-bashdb-find-file (f)
- (find-file-noselect f))
-
-;;;###autoload
-(defun bashdb (command-line)
- "Run bashdb on program FILE in buffer *gud-FILE*.
-The directory containing FILE becomes the initial working directory
-and source-file directory for your debugger."
- (interactive
- (if xemacsp
- (list (read-from-minibuffer "Run bashdb (like this): "
- (if (consp gud-bashdb-history)
- (car gud-bashdb-history)
- (format "%s " gud-bashdb-command-name))
- nil nil
- '(gud-bashdb-history . 1)))
- (list (gud-query-cmdline 'bashdb))
- ))
-
- (if xemacsp
- (progn
- (gud-overload-functions '((gud-massage-args . gud-bashdb-massage-args)
- (gud-marker-filter . gud-bashdb-marker-filter)
- (gud-find-file . gud-bashdb-find-file)))
- (gud-common-init command-line gud-bashdb-command-name))
- (gud-common-init command-line 'gud-bashdb-massage-args
- 'gud-bashdb-marker-filter 'gud-bashdb-find-file)
- (set (make-local-variable 'gud-minor-mode) 'bashdb))
-
-;; Unsupported commands
-;; condition foo set break condition to foo
-;; condition clear break condition
-;; display EXP evaluate and display EXP for each debug step
-;; display show a list of display expressions
-;; undisplay N remove display expression N
-;; ! string passes string to a shell
-;; quit quit
-
- (gud-def gud-break "break %l" "\C-b" "Set breakpoint at current line.")
- (gud-def gud-list-break "break" "b" "List breakpoints & break condition.")
- (gud-def gud-remove "delete %l" "\C-d" "Remove breakpoint at current line")
- (gud-def gud-remove-all "delete" "d" "Clear all breakpoints")
- (gud-def gud-cont "continue" "\C-r" "Continue with display.")
- (gud-def gud-next "next" "\C-n" "Step one line (skip functions).")
- (gud-def gud-print "print %e" "\C-p" "Evaluate bash expression at point.")
- (gud-def gud-help "help" "h" "Show all commands.")
- (gud-def gud-trace "trace" "t" "Toggle execution trace on/off")
-
- (setq comint-prompt-regexp "^bashdb> ")
- (setq paragraph-start comint-prompt-regexp)
- (run-hooks 'bashdb-mode-hook))
-
-(provide 'bashdb)
-;; bashdb.el ends here