changeset 95251:7fc95e208907

(gdb-enable-debug): New function. (gdb-annotation-rules): New entry for "thread-changed". (gdb-thread-changed): New function.
author Nick Roberts <nickrob@snap.net.nz>
date Fri, 23 May 2008 07:36:54 +0000
parents ae1ecb8cd760
children ea285070341e
files lisp/progmodes/gdb-ui.el
diffstat 1 files changed, 21 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/gdb-ui.el	Fri May 23 07:35:07 2008 +0000
+++ b/lisp/progmodes/gdb-ui.el	Fri May 23 07:36:54 2008 +0000
@@ -401,6 +401,21 @@
 	  ;; Force mode line redisplay soon.
 	  (force-mode-line-update)))))
 
+(defun gdb-enable-debug (arg)
+  "Toggle logging of transaction between Emacs and Gdb.
+The log is stored in `gdb-debug-log' as an alist with elements
+whose cons is send, send-item or recv and whose cdr is the string
+being transferred.  This list may grow up to a size of
+`gdb-debug-log-max' after which the oldest element (at the end of
+the list) is deleted every time a new one is added (at the front)."
+  (interactive "P")
+  (setq gdb-enable-debug
+	(if (null arg)
+	    (not gdb-enable-debug)
+	  (> (prefix-numeric-value arg) 0)))
+  (message (format "Logging of transaction %sabled"
+		   (if gdb-enable-debug "en" "dis"))))
+
 (defun gdb-many-windows (arg)
   "Toggle the number of windows in the basic arrangement.
 With prefix argument ARG, display additional buffers if ARG is positive,
@@ -1313,7 +1328,9 @@
     ("stopped" gdb-stopped)
     ("error-begin" gdb-error)
     ("error" gdb-error)
-    ("new-thread" (lambda (ignored) (gdb-get-buffer-create 'gdb-threads-buffer))))
+    ("new-thread" (lambda (ignored)
+		    (gdb-get-buffer-create 'gdb-threads-buffer)))
+    ("thread-changed" gdb-thread-changed))
   "An assoc mapping annotation tags to functions which process them.")
 
 (defun gdb-resync()
@@ -1539,6 +1556,9 @@
 (defun gdb-error (ignored)
   (setq gdb-error (not gdb-error)))
 
+(defun gdb-thread-changed (ignored)
+  (gdb-frames-force-update))
+
 (defun gdb-post-prompt (ignored)
   "An annotation handler for `post-prompt'.
 This begins the collection of output from the current command if that