2017-08-03 3 views
0

J'essaie de déboguer GDB lui-même et de traiter un problème de signal Ctrl + C envoyé par un autre terminal.Débogage GDB lui-même et problèmes de gestion du signal

Je lance GDB pour être débogué dans terminal 1 en mode TUI. Juste après, j'ouvre un autre terminal 2 et trouve le numéro PID de la GDB qui fonctionne sur Terminal 1. Puis attachez ce processus au débogage.

Dans Terminal 1

$ build-gdb/gdb/gdb -tui ./build/output.elf -tty=$TTY 

Dans Terminal 2

$ ps -elf | less 
$ sudo gdb -p PID_NUMBER-tty=$TTY -tui 

Le problème est quand j'appuyez sur Ctrl + C pour arrêter GDB dans terminal 1, GDB fonctionne sur Terminal 2 arrêts . GDB dans Le terminal 1 ne répond pas du tout à la commande^C. J'ai essayé d'utiliser le paramètre -tty et d'obtenir le TTY actuel, mais je n'ai pas résolu le problème. GDB utilise la bibliothèque GNL readline, mais je devrais configurer le terminal et son entrée correctement.

Une idée?

Répondre

0

Vous pouvez utiliser

handle SIGINT pass 

pour instruire GDB de transmettre le signal à l'inférieur. Voir Signals dans le manuel GDB. L'argument nostop pourrait être utile dans cette situation aussi.

+0

Merci, ça marche – sam