Function: jdb
jdb is an autoloaded, interactive and byte-compiled function defined
in gud.el.gz.
Signature
(jdb COMMAND-LINE)
Documentation
Run jdb with command line COMMAND-LINE in a buffer.
The buffer is named "*gud*" if no initial class is given or
"*gud-<initial-class-basename>*" if there is. If the "-classpath"
switch is given, omit all whitespace between it and its value.
See gud-jdb-use-classpath and gud-jdb-classpath documentation for
information on how jdb accesses source files. Alternatively (if
gud-jdb-use-classpath is nil), see gud-jdb-directories for the
original source file access method.
For general information about commands available to control jdb from
gud, see gud-mode.
Probably introduced at or before Emacs version 20.3.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/gud.el.gz
;;;###autoload
(defun jdb (command-line)
"Run jdb with command line COMMAND-LINE in a buffer.
The buffer is named \"*gud*\" if no initial class is given or
\"*gud-<initial-class-basename>*\" if there is. If the \"-classpath\"
switch is given, omit all whitespace between it and its value.
See `gud-jdb-use-classpath' and `gud-jdb-classpath' documentation for
information on how jdb accesses source files. Alternatively (if
`gud-jdb-use-classpath' is nil), see `gud-jdb-directories' for the
original source file access method.
For general information about commands available to control jdb from
gud, see `gud-mode'."
(interactive
(list (gud-query-cmdline 'jdb)))
(setq gud-jdb-classpath nil)
(setq gud-jdb-sourcepath nil)
;; Set gud-jdb-classpath from the CLASSPATH environment variable,
;; if CLASSPATH is set.
(setq gud-jdb-classpath-string (or (getenv "CLASSPATH") "."))
(if gud-jdb-classpath-string
(setq gud-jdb-classpath
(gud-jdb-parse-classpath-string gud-jdb-classpath-string)))
(setq gud-jdb-classpath-string nil) ; prepare for next
(gud-common-init command-line 'gud-jdb-massage-args
'gud-jdb-marker-filter)
(setq-local gud-minor-mode 'jdb)
;; If a -classpath option was provided, set gud-jdb-classpath
(if gud-jdb-classpath-string
(setq gud-jdb-classpath
(gud-jdb-parse-classpath-string gud-jdb-classpath-string)))
(setq gud-jdb-classpath-string nil) ; prepare for next
;; If a -sourcepath option was provided, parse it
(if gud-jdb-sourcepath
(setq gud-jdb-sourcepath
(gud-jdb-parse-classpath-string gud-jdb-sourcepath)))
(gud-def gud-break "stop at %c:%l" "\C-b" "Set breakpoint at current line.")
(gud-def gud-remove "clear %c:%l" "\C-d" "Remove breakpoint at current line")
(gud-def gud-step "step" "\C-s" "Step one source line with display.")
(gud-def gud-next "next" "\C-n" "Step one line (skip functions).")
(gud-def gud-cont "cont" "\C-r" "Continue with display.")
(gud-def gud-finish "step up" "\C-f" "Continue until current method returns.")
(gud-def gud-up "up\C-Mwhere" "<" "Up one stack frame.")
(gud-def gud-down "down\C-Mwhere" ">" "Up one stack frame.")
(gud-def gud-run "run" nil "Run the program.") ;if VM start using jdb
(gud-def gud-print "print %e" "\C-p" "Print value of expression at point.")
(gud-def gud-pstar "dump %e" nil "Print all object information at point.")
(gud-set-repeat-map-property 'gud-jdb-repeat-map)
(setq comint-prompt-regexp "^> \\|^[^ ]+\\[[0-9]+\\] ")
(setq paragraph-start comint-prompt-regexp)
(run-hooks 'jdb-mode-hook)
(if gud-jdb-use-classpath
;; Get the classpath information from the debugger
(progn
(if (string-match "-attach" command-line)
(gud-call "classpath"))
(fset 'gud-jdb-find-source
#'gud-jdb-find-source-using-classpath))
;; Else create and bind the class/source association list as well
;; as the source file list.
(setq gud-jdb-class-source-alist
(gud-jdb-build-class-source-alist
(setq gud-jdb-source-files
(gud-jdb-build-source-files-list gud-jdb-directories
"\\.java\\'"))))
(fset 'gud-jdb-find-source #'gud-jdb-find-source-file)))