comparison lisp/progmodes/gud.el @ 67403:adbf404cf806

(gud-speedbar-buttons, gud-tooltip-tips): No need to check gud-comint-buffer is bound. (gdb): Prevent multiple debugging when first session uses gdba.
author Nick Roberts <nickrob@snap.net.nz>
date Thu, 08 Dec 2005 22:10:50 +0000
parents 299942030b0e
children 3d94a55776e3
comparison
equal deleted inserted replaced
67402:7fe69474f4c4 67403:adbf404cf806
434 (defun gud-speedbar-buttons (buffer) 434 (defun gud-speedbar-buttons (buffer)
435 "Create a speedbar display based on the current state of GUD. 435 "Create a speedbar display based on the current state of GUD.
436 If the GUD BUFFER is not running a supported debugger, then turn 436 If the GUD BUFFER is not running a supported debugger, then turn
437 off the specialized speedbar mode. BUFFER is not used, but are 437 off the specialized speedbar mode. BUFFER is not used, but are
438 required by the caller." 438 required by the caller."
439 (when (and (boundp 'gud-comint-buffer) 439 (when (and gud-comint-buffer
440 gud-comint-buffer
441 ;; gud-comint-buffer might be killed 440 ;; gud-comint-buffer might be killed
442 (buffer-name gud-comint-buffer)) 441 (buffer-name gud-comint-buffer))
443 (let* ((minor-mode (with-current-buffer buffer gud-minor-mode)) 442 (let* ((minor-mode (with-current-buffer buffer gud-minor-mode))
444 (window (get-buffer-window (current-buffer) 0)) 443 (window (get-buffer-window (current-buffer) 0))
445 (p (window-point window))) 444 (p (window-point window)))
659 "Run gdb on program FILE in buffer *gud-FILE*. 658 "Run gdb on program FILE in buffer *gud-FILE*.
660 The directory containing FILE becomes the initial working directory 659 The directory containing FILE becomes the initial working directory
661 and source-file directory for your debugger." 660 and source-file directory for your debugger."
662 (interactive (list (gud-query-cmdline 'gdb))) 661 (interactive (list (gud-query-cmdline 'gdb)))
663 662
663 (if (and gud-comint-buffer
664 (buffer-name gud-comint-buffer)
665 (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)))
666 (error "Multiple debugging is only supported with \"gdb --fullname\""))
667
664 (gud-common-init command-line nil 'gud-gdb-marker-filter) 668 (gud-common-init command-line nil 'gud-gdb-marker-filter)
665 (set (make-local-variable 'gud-minor-mode) 'gdb) 669 (set (make-local-variable 'gud-minor-mode) 'gdb)
666 670
667 (gud-def gud-break "break %f:%l" "\C-b" "Set breakpoint at current line.") 671 (gud-def gud-break "break %f:%l" "\C-b" "Set breakpoint at current line.")
668 (gud-def gud-tbreak "tbreak %f:%l" "\C-t" 672 (gud-def gud-tbreak "tbreak %f:%l" "\C-t"
3328 (remove-hook 'tooltip-hook 'gud-tooltip-tips) 3332 (remove-hook 'tooltip-hook 'gud-tooltip-tips)
3329 (define-key global-map [mouse-movement] 'ignore))) 3333 (define-key global-map [mouse-movement] 'ignore)))
3330 (gud-tooltip-activate-mouse-motions-if-enabled) 3334 (gud-tooltip-activate-mouse-motions-if-enabled)
3331 (if (and 3335 (if (and
3332 gud-comint-buffer 3336 gud-comint-buffer
3333 (buffer-name gud-comint-buffer); gud-comint-buffer might be kille 3337 (buffer-name gud-comint-buffer); gud-comint-buffer might be killed
3334 (with-current-buffer gud-comint-buffer 3338 (with-current-buffer gud-comint-buffer
3335 (memq gud-minor-mode '(gdbmi gdba)))) 3339 (memq gud-minor-mode '(gdbmi gdba))))
3336 (if gud-tooltip-mode 3340 (if gud-tooltip-mode
3337 (progn 3341 (progn
3338 (dolist (buffer (buffer-list)) 3342 (dolist (buffer (buffer-list))
3382 3386
3383 This function must return nil if it doesn't handle EVENT." 3387 This function must return nil if it doesn't handle EVENT."
3384 (let (process) 3388 (let (process)
3385 (when (and (eventp event) 3389 (when (and (eventp event)
3386 gud-tooltip-mode 3390 gud-tooltip-mode
3387 (boundp 'gud-comint-buffer)
3388 gud-comint-buffer 3391 gud-comint-buffer
3389 (buffer-name gud-comint-buffer); gud-comint-buffer might be killed 3392 (buffer-name gud-comint-buffer); might be killed
3390 (setq process (get-buffer-process gud-comint-buffer)) 3393 (setq process (get-buffer-process gud-comint-buffer))
3391 (posn-point (event-end event)) 3394 (posn-point (event-end event))
3392 (or (and (eq gud-minor-mode 'gdba) (not gdb-active-process)) 3395 (or (and (eq gud-minor-mode 'gdba) (not gdb-active-process))
3393 (progn (setq gud-tooltip-event event) 3396 (progn (setq gud-tooltip-event event)
3394 (eval (cons 'and gud-tooltip-display))))) 3397 (eval (cons 'and gud-tooltip-display)))))