Supposer que
(gdb) print *this
résulté en 20 lignes de sortie. Oui, il y aurait Type <return> to continue, or q <return> to quit
, mais j'aimerais revenir en haut après avoir atteint le bas de la sortie.
Je ne pense pas http://sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.html répond à ma question. Il est dit
<PgUp>
Faites défiler la fenêtre active d'une page vers le haut.
mais lorsque l'accent est mis sur la fenêtre de commande, PgUp rembobine l'historique des commandes, au lieu de revenir en arrière dans la fenêtre de commande. Est-ce seulement moi qui souffre de ce comportement?
J'utilise PuTTY pour SSH vers Red Hat Linux (si cela fait une différence).
Une façon de voir l'historique des sorties GDB en mode TUI est d'activer la journalisation:
set trace-commands on
set logging on
puis réduisez le journal dans un autre shell:
cd where/gdb/is/running
tail -f gdb.txt
Cela a l'avantage de séparer le défilement de l'interaction des commandes, de sorte que vous pouvez taper des commandes tout en affichant une section antérieure de la sortie GDB.
Aucune des touches de défilement ne fonctionne dans ma fenêtre CMD, donc GDB consomme et détruit efficacement sa propre sortie. La sortie du mode TUI me permet de faire défiler vers le haut, mais la sortie qui s'est produite en mode TUI n'est pas là - la fenêtre non-TUI affiche uniquement la nouvelle sortie générée après la sortie du mode TUI. Jusqu'à présent, log and tail est la seule solution que je puisse trouver.
Modifier: si vous activez la journalisation GDB (via set logging on
) avant de passer en mode TUI, vous pouvez constater que la journalisation s'arrête en entrant dans TUI (il s'agit d'un bogue dans GDB). Vous pouvez le réactiver:
set logging off
set logging on
J'ai trouvé une réponse ici: http://beej.us/guide/bggdb/
Notez que lorsque la fenêtre SRC est active, les touches fléchées déplacent le code source, mais lorsque la fenêtre CMD est active, les touches fléchées sélectionnent les commandes précédente et suivante dans l'historique des commandes. (Pour mémoire, les commandes pour déplacer les lignes et les pages uniques de la fenêtre SRC sont +, -, <et>.)
Il existe également un exemple de session illustrant ceci:
(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)
Tu peux essayer Ctrl + P pour la commande précédente et Ctrl + N pour la commande next (lorsque vous avez utilisé Ctrl + P pour revenir aux commandes précédentes :)
Utilisation C-x o
(d'habitude Ctrl + X, O). En utilisant cela, vous pouvez changer votre fenêtre active, puis utiliser la flèche normale haut/bas pour voir les commandes précédentes.