Wie kann ich verhindern, dass der gdb * Eingabe / Ausgabe * -Puffer aggressiv im Frame auftaucht?


8

Bei Verwendung von gdb mit M-x gdbwird der *input/output*Puffer in jedem Frame, der Fokus hat und ihn noch nicht anzeigt , immer aggressiv angezeigt. Ich möchte, dass der *input/output*Puffer ruhig im Hintergrund bleibt, es sei denn, ich rufe ihn manuell auf.

Hier ist ein sehr einfaches Beispiel mit emacs -Q

laufen M-x gdb. Geben Sie ein Programm von bashund schlagen SieReturn

Geben Sie im *gud-bash*Fenster einrun -c "while true; do echo hi && sleep 1; done"

Beachten Sie, wie das *input/output of bash*Fenster geöffnet wird. Wenn Sie diesen Puffer mit C-x 1aus dem *gud-bash*Fenster schließen, wird er wieder angezeigt, sobald gdb mehr stdout erzeugt. Das ist das Verhalten, das ich nicht will.

Insbesondere jetzt ausführen M-x make-frame(aus dem *gud-bash*Fenster). Beachten Sie, wie im neuen Frame *input/output of bash*auch auftaucht! Es erfordert also ein Fenster aus jedem einzelnen Emacs-Frame.

Wie kann ich das beheben?

Edit: Ich habe fast vergessen hinzuzufügen - Emacs-Version von

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

Antworten:


6

Sobald Emacs 25 Länder hat, wird es eine Variable geben gdb-display-io-nopopup, um dieses Problem zu beheben


Danke danke danke! Das ist seit Jahren eine Irritation für mich! Dies löste mein Problem.
Pablo Halpern

-1

Teilen Sie das Emacs-Fenster in drei Fenster (cx 3) und weisen Sie dem Eingabe- / Ausgabepuffer ein Fenster zu (cx b, Eingabe / Ausgabe ).

Stoppt das Popup und die Programmausgabe wird im Pufferfenster " Eingabe / Ausgabe " angezeigt


Klären Sie, was Sie unter "Bildschirm" und "Zuweisen" verstehen. Ich bin mir auch nicht sicher, ob das Problem behoben ist, dass der Debugger-Code Sie dazu zwingt, den Eingabe- / Ausgabepuffer in einem Fenster in jedem Frame anzuzeigen.
Stefan

geteilte Emacs-Fenster: (cx n), Puffer einem Fenster zuweisen (cx b)
Paul Salber
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.