branch: master commit baab01d605fded0e3cfbb5bcc19c1b8be59c3eaa Merge: bdf317e 1790056 Author: rocky <ro...@gnu.org> Commit: rocky <ro...@gnu.org>
Merge branch 'master' of github.com:rocky/emacs-dbgr --- realgud/common/key.el | 2 +- realgud/debugger/bashdb/bashdb.el | 1 - realgud/debugger/bashdb/core.el | 1 - realgud/debugger/gdb/gdb.el | 1 - realgud/debugger/nodejs/nodejs.el | 1 - realgud/debugger/pdb/core.el | 27 ++++++++++++++++++++++++++- realgud/debugger/pdb/pdb.el | 28 ++++++++++++++++++++++++++++ realgud/debugger/zshdb/zshdb.el | 1 - 8 files changed, 55 insertions(+), 7 deletions(-) diff --git a/realgud/common/key.el b/realgud/common/key.el index e166881..a7bd912 100644 --- a/realgud/common/key.el +++ b/realgud/common/key.el @@ -61,7 +61,7 @@ This variable can be bound to the following: "Bind the debugger function key layout used by many debuggers. \\{realgud-example-map-standard}" - (define-key map [f5] 'realgud-continue) + (define-key map [f5] 'realgud:cmd-continue) (define-key map [S-f5] 'realgud:cmd-quit) ;; (define-key map [f9] 'realgud-toggle-source-breakpoint) (define-key map [f9] 'realgud:cmd-break) diff --git a/realgud/debugger/bashdb/bashdb.el b/realgud/debugger/bashdb/bashdb.el index 81324de..372aa76 100644 --- a/realgud/debugger/bashdb/bashdb.el +++ b/realgud/debugger/bashdb/bashdb.el @@ -16,7 +16,6 @@ ;; along with this program. If not, see <http://www.gnu.org/licenses/>. ;; `bashdb' Main interface to bashdb via Emacs -(require 'list-utils) (require 'load-relative) (require-relative-list '("../../common/helper") "realgud-") (require-relative-list '("../../common/run") "realgud:") diff --git a/realgud/debugger/bashdb/core.el b/realgud/debugger/bashdb/core.el index 7d6e215..899eec0 100644 --- a/realgud/debugger/bashdb/core.el +++ b/realgud/debugger/bashdb/core.el @@ -17,7 +17,6 @@ (eval-when-compile (require 'cl)) (require 'load-relative) -(require 'list-utils) (require-relative-list '("../../common/track" "../../common/core") "realgud-") (require-relative-list '("init") "realgud:bashdb-") diff --git a/realgud/debugger/gdb/gdb.el b/realgud/debugger/gdb/gdb.el index 9db9c02..168d2d2 100644 --- a/realgud/debugger/gdb/gdb.el +++ b/realgud/debugger/gdb/gdb.el @@ -18,7 +18,6 @@ ;; `realgud:gdb' Main interface to gdb via Emacs (require 'cl) -(require 'list-utils) (require 'load-relative) (require-relative-list '("../../common/helper" "../../common/utils") "realgud-") diff --git a/realgud/debugger/nodejs/nodejs.el b/realgud/debugger/nodejs/nodejs.el index 33cb74f..59ad7e8 100644 --- a/realgud/debugger/nodejs/nodejs.el +++ b/realgud/debugger/nodejs/nodejs.el @@ -18,7 +18,6 @@ ;;; Copyright (C) 2014-2015 Rocky Bernstein <ro...@gnu.org> ;; `nodejs' Main interface to nodejs debugger via Emacs -(require 'list-utils) (require 'load-relative) (require-relative-list '("../../common/helper") "realgud-") (require-relative-list '("../../common/run") "realgud:") diff --git a/realgud/debugger/pdb/core.el b/realgud/debugger/pdb/core.el index 36a7634..520c7c7 100644 --- a/realgud/debugger/pdb/core.el +++ b/realgud/debugger/pdb/core.el @@ -36,6 +36,9 @@ (defvar realgud:pdb-minibuffer-history nil "minibuffer history list for the command `pdb'.") +(defvar realgud:pdb-remote-minibuffer-history nil + "minibuffer history list for the command `pdb-remote'.") + (easy-mmode-defmap pdb-minibuffer-local-map '(("\C-i" . comint-dynamic-complete-filename)) "Keymap for minibuffer prompting of gud startup command." @@ -142,7 +145,29 @@ Note that the script name path has been expanded via `expand-file-name'. ))) (list interpreter-args debugger-args script-args annotate-p)))) -;; To silence Warning: reference to free variable +(defun pdb-parse-remote-cmd-args (orig-args) + "Parse command line ORIG-ARGS +ORIG-ARGS should contain a tokenized list of the command line to run. + +We return the a list containing: +* the command processor (e.g. python) and it's arguments if any - a list of strings +* the name of the debugger given (e.g. pdb) and its arguments - a list of strings +* the script name and its arguments - list of strings +* nil + +For example for the following input: + (map 'list 'symbol-name + '(telnet localhost 6900)) + +we might return: + ((\"telnet\" \"localhost\" \"6900\") (\"pdb\") (\"\") nil) + +Note that the script name path has been expanded via `expand-file-name'. +" + (list orig-args '("pdb") '("") nil) + ) + + ;; To silence Warning: reference to free variable (defvar realgud:pdb-command-name) (defun pdb-suggest-invocation (debugger-name) diff --git a/realgud/debugger/pdb/pdb.el b/realgud/debugger/pdb/pdb.el index 5c643a3..8fad6b9 100644 --- a/realgud/debugger/pdb/pdb.el +++ b/realgud/debugger/pdb/pdb.el @@ -75,6 +75,34 @@ fringe and marginal icons. ) +;;;###autoload +(defun realgud:pdb-remote (&optional opt-cmd-line no-reset) + "Invoke the pdb Python debugger and start the Emacs user interface. + +String OPT-CMD-LINE specifies how to run pdb. You will be prompted +for a command line is one isn't supplied. + +OPT-COMMAND-LINE is treated like a shell string; arguments are +tokenized by `split-string-and-unquote'. The tokenized string is +parsed by `pdb-parse-remote-cmd-args' and path elements found by that +are expanded using `realgud:expand-file-name-if-exists'. + +Normally, command buffers are reused when the same debugger is +reinvoked inside a command buffer with a similar command. If we +discover that the buffer has prior command-buffer information and +NO-RESET is nil, then that information which may point into other +buffers and source buffers which may contain marks and fringe or +marginal icons is reset. See `loc-changes-clear-buffer' to clear +fringe and marginal icons. +" + (interactive) + (realgud:run-debugger "pdb" 'pdb-remote-query-cmdline + 'pdb-parse-remote-cmd-args + 'realgud:pdb-remote-minibuffer-history + opt-cmd-line no-reset) + ) + + (defalias 'pdb 'realgud:pdb) (provide-me "realgud-") diff --git a/realgud/debugger/zshdb/zshdb.el b/realgud/debugger/zshdb/zshdb.el index 34a73bc..2618da3 100644 --- a/realgud/debugger/zshdb/zshdb.el +++ b/realgud/debugger/zshdb/zshdb.el @@ -1,6 +1,5 @@ ;;; Copyright (C) 2011, 2014-2015 Rocky Bernstein <ro...@gnu.org> ;; `zshdb' Main interface to zshdb via Emacs -(require 'list-utils) (require 'load-relative) (require-relative-list '("../../common/helper") "realgud-") (require-relative-list '("../../common/track") "realgud-")