2010-08-13 9 views
6

Estoy usando emacs 23.1.1 con gdb y gdb-many-windows.Emacs 23.1.1 con gdb - forzando ventanas de origen

Mi pregunta es si es posible obligar a gdb a usar siempre la ventana de fuente principal para recorrer el código. Lo que pasa es que a medida que avanzo en los marcos de pila, si tengo el archivo fuente en otros marcos de emacs, emacs lleva ese marco al primer plano mientras deja el marco gud en segundo plano con el foco del teclado.

Lo que me gustaría hacer es forzar a emacs/gdb a utilizar la ventana de fuente principal para todos los rastreos, incluso si hay otro marco con el mismo archivo fuente por algún lado.

¿Alguna idea?

+0

en debian con emacs 24.4.1, esto todavía sucede a mí. FWIW, encontré un informe de fallas, pero sin (aún) ningún parche: http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-06/msg00097.html – pestophagous

Respuesta

3

Mi versión de emacs es 24.3. Así que no estoy muy seguro de si el siguiente consejo va a resolver su problema:

(defadvice gud-display-line (before one-source-window activate) 
    "Always use the same window to show source code." 
    (let ((buf (get-file-buffer true-file))) 
    (when (and buf gdb-source-window) 
     (set-window-buffer gdb-source-window buf)))) 

encontré gud-display-line con el arg true-file en la antigua fuente de allí: http://www.mit.edu/~mkgray/stuff/ath/afs/oldfiles/project/silk/root/afs/athena.mit.edu/contrib/xemacs/OldFiles/share/xemacs-packages/lisp/debug/gdb.el

Además, gdb-source-window se pueden encontrar en una discusión aproximadamente 23.1: https://groups.google.com/forum/#!topic/gnu.emacs.bug/KS6bhNeJ9rc

Por lo tanto, parece que las cosas que utilicé deberían estar disponibles en 23.1.

Para evitar la división de la ventana se puede probar esto:

(defadvice gud-display-line (around one-source-window activate) 
    "Always use the same window to show source code." 
    (let ((buf (get-file-buffer true-file))) 
    (when (and buf gdb-source-window) 
     (set-window-buffer gdb-source-window buf))) 
    (let (split-width-threshold split-width-threshold) 
    ad-do-it 
    )) 
+0

Funciona solo en la primera nuevo, si GDB abre otro archivo fuente, divide la ventana principal. –

+1

Veamos si gud se escinde sensiblemente. ¿Podría intentar establecer 'split-height-threshold' y' split-width-threshold' en 'nil'? – Tobias

+2

@MarioGiovinazzo He agregado una variante en la que establezco 'width-width-threshold' y' split-width-threshold' temporalmente en nil para evitar la división de la ventana principal. Por favor, inténtalo. – Tobias

Cuestiones relacionadas