Question Comment puis-je revenir en arrière dans la fenêtre de commande de GDB en mode TUI?


Supposer que

(gdb) print *this

a abouti à 20 lignes de sortie. Oui, il y aurait Type <return> to continue, or q <return> to quit, mais je voudrais 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 le focus est sur la fenêtre de commande, PgUp rembobine l'historique de la commande, au lieu de faire défiler la fenêtre de commande. Est-ce seulement moi qui souffre de ce comportement?

J'utilise Putty pour SSH à RHEL (si cela fait des différences).


35
2018-02-13 07:48


origine


Réponses:


Une façon de voir l'historique de sortie de la BDG en mode TUI consiste à activer la journalisation:

set trace-commands on
set logging on

et ensuite 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 de commande, vous pouvez donc taper des commandes tout en visualisant une section passée de la sortie GDB.

Aucune des touches de défilement ne fonctionne dans ma fenêtre CMD, de sorte que GDB consomme et détruit efficacement sa propre sortie. La sortie du mode TUI me permet de faire défiler la liste, mais la sortie qui s'est produite en mode TUI n'est pas là - la fenêtre non-TUI affiche uniquement les nouvelles sorties générées après la sortie du mode TUI. Jusqu'ici, log and tail est la seule solution que je puisse trouver.


Edit: si vous activez la journalisation GDB (via set logging on) avant de passer en mode TUI, vous constaterez peut-être que la journalisation s’arrête lors de l’entrée de TUI (il s’agit d’un bogue dans GDB). Vous pouvez le basculer sur:

set logging off
set logging on

25
2017-09-14 17:40



J'ai trouvé une réponse ici: http://beej.us/guide/bggdb/

Notez que lorsque la fenêtre SRC a le focus, les touches fléchées déplacent le code source, mais lorsque la fenêtre CMD a le focus, les touches fléchées sélectionnent les commandes précédentes et suivantes dans l'historique des commandes. (Pour l'enregistrement, les commandes permettant de déplacer les lignes simples et les fenêtres simples de la fenêtre SRC sont +, -, <et>.)

Il y a aussi une session d'exemple 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)

38
2017-08-30 08:58



Tu peux essayer Ctrl + p pour commande précédente et Ctrl + n pour commande suivante (quand vous avez utilisé Ctrl + p revenir aux commandes précédentes :)


9
2018-05-24 12:27



Utilisation C-x o En utilisant cela, vous pouvez changer votre fenêtre active, puis utiliser la flèche normale vers le haut pour voir les commandes précédentes.


2
2018-05-28 04:55