¿Cómo puedo evitar que gdb * input / output * buffer aparezca agresivamente en el marco?


8

Cuando se usa gdb con M-x gdb, el *input/output*búfer siempre aparece de forma agresiva en cualquier cuadro que tenga foco y no lo esté mostrando. Me gustaría que el *input/output*búfer permanezca en silencio en segundo plano a menos que lo abra manualmente.

Aquí hay un ejemplo muy simple con emacs -Q

ejecutar M-x gdb. dar un programa de bashy golpearReturn

en la *gud-bash*ventana, ingreserun -c "while true; do echo hi && sleep 1; done"

Observe cómo *input/output of bash*aparece la ventana. Si descarta ese búfer C-x 1de la *gud-bash*ventana, vuelve tan pronto como gdb produce más stdout. Ese es el comportamiento que no quiero.

En particular, ahora ejecuta M-x make-frame(desde la *gud-bash*ventana). ¡Observe cómo en el nuevo marco, *input/output of bash*también aparece! Por lo tanto, exige una ventana de cada cuadro de emacs.

¿Cómo puedo arreglar esto?

Editar: casi me olvido de agregar - versión de emacs de

GNU Emacs 24.5.2 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.30)

Respuestas:


6

Tan pronto como emacs 25 aterrice, habrá una variable gdb-display-io-nopopuppara solucionar este problema


¡Gracias, gracias, gracias! ¡Esto ha sido una irritación para mí por años! Esto resolvió mi problema.
Pablo Halpern

-1

dividir la ventana de emacs en tres (cx 3) y asignar una ventana al búfer de entrada / salida (cx b, entrada / salida )

Detiene la ventana emergente y la salida del programa se muestra en la ventana del búfer " entrada / salida "


Aclara lo que quieres decir con "pantalla" y con "asignar". Además, no estoy seguro de que aborde el problema de que el código del depurador lo obliga a tener el búfer de entrada / salida mostrado en una ventana en cada cuadro.
Stefan

dividir ventanas de emacs: (cx n), asignar búfer a una ventana (cx b)
Paul Salber
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.