mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-07 08:00:48 -08:00
*** empty log message ***
This commit is contained in:
parent
51c4341fe8
commit
c8a44c4e5c
3 changed files with 35 additions and 20 deletions
|
|
@ -1,3 +1,12 @@
|
|||
2009-08-11 Dmitry Dzhus <dima@sphinx.net.ru>
|
||||
|
||||
* progmodes/gud.el (gud-stop-subjob): Rewritten without macros
|
||||
from `gdb-mi.el' to avoid extra tangling.
|
||||
|
||||
* progmodes/gdb-mi.el (gdb-gud-context-call): Reverting previous
|
||||
change which breaks `gud-def' definitions. used in `gdb'.
|
||||
(gdb-update-gud-running): No extra fuss for updating frame number.
|
||||
|
||||
2009-08-10 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* international/mule-cmds.el (mule-keymap, mule-menu-keymap)
|
||||
|
|
|
|||
|
|
@ -134,7 +134,14 @@ value.")
|
|||
(defvar gdb-frame-number nil
|
||||
"Selected frame level for main current thread.
|
||||
|
||||
Reset whenever current thread changes.")
|
||||
Updated according to the following rules:
|
||||
|
||||
When a thread is selected or current thread stops, set to \"0\".
|
||||
|
||||
When current thread goes running (and possibly exits eventually),
|
||||
set to nil.
|
||||
|
||||
May be manually changed by user with `gdb-select-frame'.")
|
||||
|
||||
;; Used to show overlay arrow in source buffer. All set in
|
||||
;; gdb-get-main-selected-frame. Disassembly buffer should not use
|
||||
|
|
@ -565,12 +572,15 @@ When `gdb-non-stop' is nil, return COMMAND unchanged."
|
|||
(gdb-current-context-command command t))
|
||||
command))
|
||||
|
||||
;; TODO Document this. We use noarg when not in gud-def
|
||||
(defun gdb-gud-context-call (cmd1 &optional cmd2 noall noarg)
|
||||
(gud-call
|
||||
(concat
|
||||
(gdb-gud-context-command cmd1 noall)
|
||||
cmd2) (when (not noarg) 'arg)))
|
||||
(defmacro gdb-gud-context-call (cmd1 &optional cmd2 noall noarg)
|
||||
"`gud-call' wrapper which adds --thread/--all options between
|
||||
CMD1 and CMD2. NOALL is the same as in `gdb-gud-context-command'.
|
||||
|
||||
NOARG must be t when this macro is used outside `gud-def'"
|
||||
`(gud-call
|
||||
(concat
|
||||
(gdb-gud-context-command ,cmd1 ,noall)
|
||||
,cmd2) ,(when (not noarg) 'arg)))
|
||||
|
||||
;;;###autoload
|
||||
(defun gdb (command-line)
|
||||
|
|
@ -1655,11 +1665,9 @@ need to be updated appropriately when current thread changes."
|
|||
(gdb-update-gud-running))
|
||||
|
||||
(defun gdb-update-gud-running ()
|
||||
"Set `gud-running' and `gdb-frame-number' according to the state
|
||||
of current thread.
|
||||
"Set `gud-running' according to the state of current thread.
|
||||
|
||||
`gdb-frame-number' is set to nil if new current thread is
|
||||
running.
|
||||
`gdb-frame-number' is set to 0 if current thread is now stopped.
|
||||
|
||||
Note that when `gdb-gud-control-all-threads' is t, `gud-running'
|
||||
cannot be reliably used to determine whether or not execution
|
||||
|
|
@ -1673,12 +1681,10 @@ is running."
|
|||
(setq gud-running
|
||||
(string= (gdb-get-field (gdb-current-buffer-thread) 'state)
|
||||
"running"))
|
||||
;; We change frame number only if the state of current thread has
|
||||
;; changed or there's no current thread.
|
||||
(when (not (eq gud-running old-value))
|
||||
(if (or gud-running (not (gdb-current-buffer-thread)))
|
||||
(setq gdb-frame-number nil)
|
||||
(setq gdb-frame-number "0")))))
|
||||
;; Set frame number to "0" when _current_ threads stops
|
||||
(when (and (gdb-current-buffer-thread)
|
||||
(not (eq gud-running old-value)))
|
||||
(setq gdb-frame-number "0"))))
|
||||
|
||||
(defun gdb-show-run-p ()
|
||||
"Return t if \"Run/continue\" should be shown on the toolbar."
|
||||
|
|
@ -1801,7 +1807,7 @@ is running."
|
|||
(defun gdb-thread-created (output-field))
|
||||
(defun gdb-thread-exited (output-field)
|
||||
"Handle =thread-exited async record: unset `gdb-thread-number'
|
||||
if current thread exited and update threads list."
|
||||
if current thread exited and update threads list."
|
||||
(let* ((thread-id (gdb-get-field (gdb-json-string output-field) 'id)))
|
||||
(if (string= gdb-thread-number thread-id)
|
||||
(gdb-setq-thread-number nil))
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ Used to grey out relevant toolbar icons.")
|
|||
(and (eq gud-minor-mode 'gdbmi)
|
||||
(> (car (window-fringes)) 0)))))
|
||||
|
||||
(declare-function gdb-gud-context-call "gdb-mi.el")
|
||||
(declare-function gdb-gud-context-command "gdb-mi.el")
|
||||
|
||||
(defun gud-stop-subjob ()
|
||||
(interactive)
|
||||
|
|
@ -143,7 +143,7 @@ Used to grey out relevant toolbar icons.")
|
|||
((eq gud-minor-mode 'jdb)
|
||||
(gud-call "suspend"))
|
||||
((eq gud-minor-mode 'gdbmi)
|
||||
(gdb-gud-context-call "-exec-interrupt" nil nil t))
|
||||
(gud-call (gdb-gud-context-command "-exec-interrupt")))
|
||||
(t
|
||||
(comint-interrupt-subjob)))))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue