comparison lisp/progmodes/gdb-ui.el @ 69234:67e921172c0d

(gdb-speedbar-refresh): Quieten speedbar-refresh.
author Nick Roberts <nickrob@snap.net.nz>
date Wed, 01 Mar 2006 22:44:19 +0000
parents 092d8fdb26e2
children 806b0c0e3bd1 a380ca43a190 5754737d1e04
comparison
equal deleted inserted replaced
69233:4ec5a067baf3 69234:67e921172c0d
69 ;; and compiling with -DUNBUFFERED while debugging. 69 ;; and compiling with -DUNBUFFERED while debugging.
70 70
71 ;;; Known Bugs: 71 ;;; Known Bugs:
72 72
73 ;; 1) Strings that are watched don't update in the speedbar when their 73 ;; 1) Strings that are watched don't update in the speedbar when their
74 ;; contents change. 74 ;; contents change unless the first character changes.
75 ;; 2) Cannot handle multiple debug sessions. 75 ;; 2) Cannot handle multiple debug sessions.
76 76 ;; 3) Initially, the assembler buffer does not display the cursor at the
77 ;;; Problems with watch expressions: 77 ;; current line if the line is not visible in the window (but when testing
78 ;; gdb-assembler-custom with a lisp debugger it does!).
79
80 ;;; Problems with watch expressions, GDB/MI:
78 81
79 ;; 1) They go out of scope when the inferior is re-run. 82 ;; 1) They go out of scope when the inferior is re-run.
80 ;; 2) -var-update reports that an out of scope variable has changed: 83 ;; 2) -stack-list-locals has a type field but also prints type in values field.
81 ;; changelist=[{name="var1",in_scope="false"}], but the value can't be accessed. 84 ;; 3) VARNUM increments even when vairable object is not created (maybe trivial).
82 ;; (-var-list-children, in contrast allows you to create variable objects of
83 ;; the children when they are out of scope and get their values).
84 ;; 3) VARNUM increments even when vaiable object is not created (maybe trivial).
85 85
86 ;;; TODO: 86 ;;; TODO:
87 87
88 ;; 1) Use MI command -data-read-memory for memory window. 88 ;; 1) Use MI command -data-read-memory for memory window.
89 ;; 2) Use tree-widget.el instead of the speedbar for watch-expressions? 89 ;; 2) Use tree-widget.el instead of the speedbar for watch-expressions?
756 756
757 (defun gdb-speedbar-refresh () 757 (defun gdb-speedbar-refresh ()
758 (setq gdb-pending-triggers 758 (setq gdb-pending-triggers
759 (delq 'gdb-speedbar-refresh gdb-pending-triggers)) 759 (delq 'gdb-speedbar-refresh gdb-pending-triggers))
760 (with-current-buffer gud-comint-buffer 760 (with-current-buffer gud-comint-buffer
761 (speedbar-refresh))) 761 (let ((speedbar-verbosity-level 0))
762 (save-excursion
763 (speedbar-refresh)))))
762 764
763 (defun gdb-var-delete () 765 (defun gdb-var-delete ()
764 "Delete watch expression at point from the speedbar." 766 "Delete watch expression at point from the speedbar."
765 (interactive) 767 (interactive)
766 (if (memq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 768 (if (memq (buffer-local-value 'gud-minor-mode gud-comint-buffer)
1249 1251
1250 (defun gdb-post-prompt (ignored) 1252 (defun gdb-post-prompt (ignored)
1251 "An annotation handler for `post-prompt'. 1253 "An annotation handler for `post-prompt'.
1252 This begins the collection of output from the current command if that 1254 This begins the collection of output from the current command if that
1253 happens to be appropriate." 1255 happens to be appropriate."
1254 ;; Don't add to queue if there outstanding items or GDB is not known yet. 1256 ;; Don't add to queue if there outstanding items or gdb-version is not known
1257 ;; yet.
1255 (unless (or gdb-pending-triggers gdb-first-post-prompt) 1258 (unless (or gdb-pending-triggers gdb-first-post-prompt)
1256 (gdb-get-selected-frame) 1259 (gdb-get-selected-frame)
1257 (gdb-invalidate-frames) 1260 (gdb-invalidate-frames)
1258 ;; Regenerate breakpoints buffer in case it has been inadvertantly deleted. 1261 ;; Regenerate breakpoints buffer in case it has been inadvertantly deleted.
1259 (gdb-get-buffer-create 'gdb-breakpoints-buffer) 1262 (gdb-get-buffer-create 'gdb-breakpoints-buffer)