# HG changeset patch # User Nick Roberts # Date 1211528214 0 # Node ID 7fc95e20890767a0c0241211325440e1c0921123 # Parent ae1ecb8cd760f49aa73a5029464f4e31445ae348 (gdb-enable-debug): New function. (gdb-annotation-rules): New entry for "thread-changed". (gdb-thread-changed): New function. diff -r ae1ecb8cd760 -r 7fc95e208907 lisp/progmodes/gdb-ui.el --- 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