]> code.delx.au - gnu-emacs/blobdiff - lisp/progmodes/gdb-ui.el
(inferior-python-mode-map): Remove erroneous C-c C-z binding.
[gnu-emacs] / lisp / progmodes / gdb-ui.el
index 2e836fb82b2e0f30c04519c964ea1ad6703bb3f4..fc3196cdb4f3e479720feb328510d7fa961c001c 100644 (file)
@@ -217,9 +217,10 @@ speedbar."
       (gdb-enqueue-input
        (list (concat "server interpreter mi \"-var-create - * "  expr "\"\n")
             `(lambda () (gdb-var-create-handler ,expr))))))
-  (select-window (get-buffer-window gud-comint-buffer)))
+  (select-window (get-buffer-window gud-comint-buffer 'visible)))
 
 (defun gdb-goto-info ()
+  "Go to Emacs info node: GDB Graphical Interface."
   (interactive)
   (select-frame (make-frame))
   (require 'info)
@@ -1117,7 +1118,7 @@ static char *magick[] = {
   (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom)))
 
 (defun gdb-mouse-toggle-breakpoint (event)
-  "Toggle breakpoint with mouse click in left margin."
+  "Toggle breakpoint in left fringe/margin with mouse click"
   (interactive "e")
   (mouse-minibuffer-check event)
   (let ((posn (event-end event)))
@@ -1137,6 +1138,7 @@ static char *magick[] = {
     (concat "*breakpoints of " (gdb-get-target-string) "*")))
 
 (defun gdb-display-breakpoints-buffer ()
+  "Display status of user-settable breakpoints."
   (interactive)
   (gdb-display-buffer
    (gdb-get-create-buffer 'gdb-breakpoints-buffer)))
@@ -1149,6 +1151,7 @@ static char *magick[] = {
     (minibuffer . nil)))
 
 (defun gdb-frame-breakpoints-buffer ()
+  "Display status of user-settable breakpoints in a new frame."
   (interactive)
   (select-frame (make-frame gdb-frame-parameters))
   (switch-to-buffer (gdb-get-create-buffer 'gdb-breakpoints-buffer))
@@ -1205,8 +1208,7 @@ static char *magick[] = {
      (list (concat "server delete " (match-string 1) "\n") 'ignore))))
 
 (defun gdb-goto-breakpoint ()
-  "Display the file in the source buffer at the breakpoint specified on the
-current line."
+  "Display the breakpoint location specified at current line."
   (interactive)
   (save-excursion
     (beginning-of-line 1)
@@ -1216,14 +1218,16 @@ current line."
       (let ((line (match-string 2))
            (file (match-string 1)))
        (save-selected-window
-         (gdb-display-buffer (find-file-noselect
-                              (if (file-exists-p file)
-                                  file
-                                (expand-file-name file gdb-cdir))))
-         (goto-line (string-to-number line))))))
+         (let* ((buf (find-file-noselect (if (file-exists-p file)
+                                             file
+                                           (expand-file-name file gdb-cdir))))
+                (window (gdb-display-buffer buf)))
+                (with-current-buffer buf
+                  (goto-line (string-to-number line))
+                  (set-window-point window (point))))))))
 
 (defun gdb-mouse-goto-breakpoint (event)
-  "Display the file in the source buffer at the selected breakpoint."
+  "Display the breakpoint location that you click on."
   (interactive "e")
   (mouse-set-point event)
   (gdb-goto-breakpoint))
@@ -1266,11 +1270,13 @@ current line."
     (concat "*stack frames of " (gdb-get-target-string) "*")))
 
 (defun gdb-display-stack-buffer ()
+  "Display backtrace of current stack."
   (interactive)
   (gdb-display-buffer
    (gdb-get-create-buffer 'gdb-stack-buffer)))
 
 (defun gdb-frame-stack-buffer ()
+  "Display backtrace of current stack in a new frame."
   (interactive)
   (select-frame (make-frame gdb-frame-parameters))
   (switch-to-buffer (gdb-get-create-buffer 'gdb-stack-buffer))
@@ -1301,16 +1307,14 @@ current line."
       n)))
 
 (defun gdb-frames-select ()
-  "Make the frame on the current line become the current frame and display the
-source in the source buffer."
+  "Select the frame and display the relevant source."
   (interactive)
   (gdb-enqueue-input
    (list (concat "server frame " (gdb-get-frame-number) "\n") 'ignore))
   (gud-display-frame))
 
 (defun gdb-frames-mouse-select (event)
-  "Make the selected frame become the current frame and display the source in
-the source buffer."
+  "Select the frame you click on and display the relevant source."
   (interactive "e")
   (mouse-set-point event)
   (gdb-frames-select))
@@ -1343,11 +1347,13 @@ the source buffer."
     (concat "*threads of " (gdb-get-target-string) "*")))
 
 (defun gdb-display-threads-buffer ()
+  "Display IDs of currently known threads."
   (interactive)
   (gdb-display-buffer
    (gdb-get-create-buffer 'gdb-threads-buffer)))
 
 (defun gdb-frame-threads-buffer ()
+  "Display IDs of currently known threads in a new frame."
   (interactive)
   (select-frame (make-frame gdb-frame-parameters))
   (switch-to-buffer (gdb-get-create-buffer 'gdb-threads-buffer))
@@ -1376,16 +1382,14 @@ the source buffer."
     (match-string-no-properties 1)))
 
 (defun gdb-threads-select ()
-  "Make the thread on the current line become the current thread and display the
-source in the source buffer."
+  "Select the thread and display the relevant source."
   (interactive)
   (gdb-enqueue-input
    (list (concat "thread " (gdb-get-thread-number) "\n") 'ignore))
   (gud-display-frame))
 
 (defun gdb-threads-mouse-select (event)
-  "Make the selected frame become the current frame and display the source in
-the source buffer."
+  "Select the thread you click on and display the relevant source."
   (interactive "e")
   (mouse-set-point event)
   (gdb-threads-select))
@@ -1425,11 +1429,13 @@ the source buffer."
     (concat "*registers of " (gdb-get-target-string) "*")))
 
 (defun gdb-display-registers-buffer ()
+  "Display integer register contents."
   (interactive)
   (gdb-display-buffer
    (gdb-get-create-buffer 'gdb-registers-buffer)))
 
 (defun gdb-frame-registers-buffer ()
+  "Display integer register contents in a new frame."
   (interactive)
   (select-frame (make-frame gdb-frame-parameters))
   (switch-to-buffer (gdb-get-create-buffer 'gdb-registers-buffer))
@@ -1497,11 +1503,13 @@ the source buffer."
     (concat "*locals of " (gdb-get-target-string) "*")))
 
 (defun gdb-display-locals-buffer ()
+  "Display local variables of current stack and their values."
   (interactive)
   (gdb-display-buffer
    (gdb-get-create-buffer 'gdb-locals-buffer)))
 
 (defun gdb-frame-locals-buffer ()
+  "Display local variables of current stack and their values in a new frame."
   (interactive)
   (select-frame (make-frame gdb-frame-parameters))
   (switch-to-buffer (gdb-get-create-buffer 'gdb-locals-buffer))
@@ -1524,7 +1532,7 @@ the source buffer."
           #'(lambda (win)
              (if (eq gud-comint-buffer (window-buffer win))
                  (set-window-dedicated-p win t))))
-         (setq answer (get-buffer-window buf))
+         (setq answer (get-buffer-window buf 'visible))
          (if (not answer)
              (let ((window (get-lru-window 'visible)))
                (if window
@@ -1548,7 +1556,7 @@ the source buffer."
   (if (eq gdb-selected-view 'source)
        (gdb-display-buffer buffer)
     (gdb-display-buffer (gdb-get-buffer 'gdb-assembler-buffer)))
-    (get-buffer-window buffer))
+    (get-buffer-window buffer 'visible))
 
 \f
 ;;; Shared keymap initialization:
@@ -1557,11 +1565,11 @@ the source buffer."
   (define-key gud-menu-map [frames]
     `(menu-item "GDB-Frames" ,menu :visible (eq gud-minor-mode 'gdba)))
   (define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer))
-  (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer))
+  (define-key menu [threads] '("Threads" . gdb-frame-threads-buffer))
   (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer))
+  (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer))
   (define-key menu [frames] '("Stack" . gdb-frame-stack-buffer))
   (define-key menu [breakpoints] '("Breakpoints" . gdb-frame-breakpoints-buffer))
-  (define-key menu [threads] '("Threads" . gdb-frame-threads-buffer))
 ;  (define-key menu [assembler] '("Machine" . gdb-frame-assembler-buffer))
 )
 
@@ -1569,11 +1577,11 @@ the source buffer."
   (define-key gud-menu-map [displays]
     `(menu-item "GDB-Windows" ,menu :visible (eq gud-minor-mode 'gdba)))
   (define-key menu [gdb] '("Gdb" . gdb-display-gdb-buffer))
-  (define-key menu [locals] '("Locals" . gdb-display-locals-buffer))
+  (define-key menu [threads] '("Threads" . gdb-display-threads-buffer))
   (define-key menu [registers] '("Registers" . gdb-display-registers-buffer))
+  (define-key menu [locals] '("Locals" . gdb-display-locals-buffer))
   (define-key menu [frames] '("Stack" . gdb-display-stack-buffer))
   (define-key menu [breakpoints] '("Breakpoints" . gdb-display-breakpoints-buffer))
-  (define-key menu [threads] '("Threads" . gdb-display-threads-buffer))
 ;  (define-key menu [assembler] '("Machine" . gdb-display-assembler-buffer))
 )
 
@@ -1601,12 +1609,14 @@ the source buffer."
                          "Display locals, stack and breakpoint information")))
 
 (defun gdb-frame-gdb-buffer ()
+  "Display GUD buffer in a new frame."
   (interactive)
   (select-frame (make-frame gdb-frame-parameters))
   (switch-to-buffer (gdb-get-create-buffer 'gdba))
   (set-window-dedicated-p (selected-window) t))
 
 (defun gdb-display-gdb-buffer ()
+  "Display GUD buffer."
   (interactive)
   (gdb-display-buffer
    (gdb-get-create-buffer 'gdba)))
@@ -1614,6 +1624,7 @@ the source buffer."
 (defvar gdb-main-file nil "Source file from which program execution begins.")
 
 (defun gdb-view-source-function ()
+  "Select source view."
   (interactive)
   (if gdb-view-source
       (gdb-display-buffer
@@ -1623,6 +1634,7 @@ the source buffer."
   (setq gdb-selected-view 'source))
 
 (defun gdb-view-assembler()
+  "Select disassembly view."
   (interactive)
   (gdb-display-buffer (gdb-get-create-buffer 'gdb-assembler-buffer))
   (gdb-invalidate-assembler)
@@ -1805,11 +1817,10 @@ BUFFER nil or omitted means use the current buffer."
          (when (< left-margin-width 2)
            (save-current-buffer
              (setq left-margin-width 2)
-             (if (get-buffer-window (current-buffer))
-                 (set-window-margins (get-buffer-window
-                                      (current-buffer))
-                                     left-margin-width
-                                     right-margin-width))))
+             (if (get-buffer-window (current-buffer) 'visible)
+                 (set-window-margins 
+                  (get-buffer-window (current-buffer) 'visible)
+                  left-margin-width right-margin-width))))
          (put-image
           (if enabled
               (or breakpoint-enabled-icon
@@ -1833,11 +1844,10 @@ BUFFER nil or omitted means use the current buffer."
       (when (< left-margin-width 2)
        (save-current-buffer
          (setq left-margin-width 2)
-         (if (get-buffer-window (current-buffer))
-             (set-window-margins (get-buffer-window
-                                  (current-buffer))
-                                 left-margin-width
-                                 right-margin-width))))
+         (if (get-buffer-window (current-buffer) 'visible)
+             (set-window-margins 
+              (get-buffer-window (current-buffer) 'visible)
+              left-margin-width right-margin-width))))
       (gdb-put-string (if enabled "B" "b") (1+ start)))))
 
 (defun gdb-remove-breakpoint-icons (start end &optional remove-margin)
@@ -1846,11 +1856,10 @@ BUFFER nil or omitted means use the current buffer."
       (remove-images start end))
   (when remove-margin
     (setq left-margin-width 0)
-    (if (get-buffer-window (current-buffer))
-       (set-window-margins (get-buffer-window
-                            (current-buffer))
-                           left-margin-width
-                           right-margin-width))))
+    (if (get-buffer-window (current-buffer) 'visible)
+       (set-window-margins 
+        (get-buffer-window (current-buffer) 'visible)
+        left-margin-width right-margin-width))))
 
 \f
 ;;
@@ -1901,7 +1910,7 @@ BUFFER nil or omitted means use the current buffer."
                  (if (re-search-forward address nil t)
                      (gdb-put-breakpoint-icon (eq flag ?y))))))))
     (if (not (equal gdb-current-address "main"))
-       (set-window-point (get-buffer-window buffer) pos))))
+       (set-window-point (get-buffer-window buffer 'visible) pos))))
 
 (defvar gdb-assembler-mode-map
   (let ((map (make-sparse-keymap)))
@@ -1927,11 +1936,13 @@ BUFFER nil or omitted means use the current buffer."
     (concat "*Machine Code " (gdb-get-target-string) "*")))
 
 (defun gdb-display-assembler-buffer ()
+  "Display disassembly view."
   (interactive)
   (gdb-display-buffer
    (gdb-get-create-buffer 'gdb-assembler-buffer)))
 
 (defun gdb-frame-assembler-buffer ()
+  "Display disassembly view in a new frame."
   (interactive)
   (select-frame (make-frame gdb-frame-parameters))
   (switch-to-buffer (gdb-get-create-buffer 'gdb-assembler-buffer))