teclas - ¿Cómo puedo desplazarme hacia atrás en la ventana de comandos de GDB en el modo TUI?
que son las teclas de acceso rapido (4)
Encontré una respuesta aquí: http://beej.us/guide/bggdb/
Tenga en cuenta que cuando la ventana SRC tiene foco, las teclas de flecha moverán el código fuente, pero cuando la ventana CMD tiene foco, las teclas de flecha seleccionarán los comandos anterior y siguiente en el historial de comandos. (Para el registro, los comandos para mover las líneas simples y las páginas individuales de la ventana SRC son +, -, <y>).
También hay una sesión de ejemplo que ilustra esto:
(gdb) info win
SRC (36 lines) <has focus>
CMD (18 lines)
(gdb) fs next
Focus set to CMD window.
(gdb) info win
SRC (36 lines)
CMD (18 lines) <has focus>
(gdb) fs SRC
Focus set to SRC window.
(gdb)
Suponer que
(gdb) print *this
dio como resultado 20 líneas de salida. Sí, habría Type <return> to continue, or q <return> to quit
, pero me gustaría volver a la parte superior después de llegar al final de la salida.
No creo que http://sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.html responda mi pregunta. Afirma
<PgUp>
Desplaza la ventana activa una página hacia arriba.
pero cuando el foco está en la ventana de comandos, PgUp rebobina el historial de comandos, en lugar de desplazarse hacia atrás en la ventana de comandos. ¿Soy solo yo quien sufre este comportamiento?
Estoy usando Putty para SSH a RHEL (si esto hace alguna diferencia).
Puede intentar Ctrl + p
para el comando anterior y Ctrl + n
para el próximo comando (cuando haya utilizado Ctrl + p
para volver a los comandos anteriores :)
Una forma de ver el historial de salida de GDB en modo TUI es habilitar el registro:
set trace-commands on
set logging on
y luego alinee el registro en otro shell:
cd where/gdb/is/running
tail -f gdb.txt
Esto tiene la ventaja de separar el desplazamiento de la interacción del comando, por lo que puede escribir comandos mientras visualiza alguna sección anterior de la salida del GDB.
Ninguna de las teclas de desplazamiento funciona en mi ventana de CMD, por lo que GDB consume y destruye su propia salida. La desactivación del modo TUI me permite desplazarme hacia arriba, pero la salida que se produjo mientras estaba en modo TUI no está allí; la ventana que no es TUI solo muestra la nueva salida generada después de desconectarse del modo TUI. Hasta ahora, log y tail es la única solución que puedo encontrar.
Editar: si activa el registro de GDB (mediante el set logging on
) antes de cambiar al modo de TUI, puede encontrar que el registro se detiene al ingresar a TUI (esto es un error en GDB). Puede volver a activarlo:
set logging off
set logging on
Use Cx o
Con esto puede cambiar su ventana activa y luego usar la flecha hacia abajo normal para ver los comandos anteriores.