2009-07-09 5 views
3

Y at-il un moyen d'arrêter l'inférieur sans utiliser Ctrl + C (ou un signal équivalent envoyé par un autre processus?) J'utilise une plate-forme Windows et gère GDB d'un autre processus, donc sans notion de signaux qu'il n'y a pas un bon moyen de casser l'exécution de mon programme quand il est libre sans points d'arrêt.Arrêt du processus inférieur dans GDB SANS signal?

MODIF.NUMERO CLARITY:

Il y a 2 processus impliqués ici. Il y a le processus A, qui est le parent de GDB. GDB gère un processus, mais il est sur un hôte distant, et nous appellerons ce processus C.

Lorsque je dis à GDB de "s'exécuter", il déclenche le processus C sur l'hôte distant et bloque jusqu'à ce qu'un point de rupture soit hit, le processus C rencontre une erreur ou un signal fatal, ou GDB lui-même reçoit un signal d'interruption. Si vous travaillez interactivement, vous devez simplement appuyer sur CTRL + C sur la console de commande GDB, que GDB interprète comme SIGINT (en quelque sorte), ce qui déclenche GDB pour arrêter le processus C. Puisque je gère réellement GDB avec le processus A (et non le traiter interactivement sur le shell) Je ne peux pas très bien appuyer sur Ctrl + C, et comme Windows n'a aucune notion native de "Signaux" comme dans UNIX, je n'arrive pas à comprendre comment interrompre GDB quand il bloque en attendant le processus C pour interrompre ou frapper un point d'arrêt.

+0

Pouvez-vous décrire cela un peu mieux. Y a-t-il trois processus impliqués? Qui est le parent de qui? – drudru

Répondre

1

Avez-vous essayé de regarder les protocoles de contrôle à distance? par exemple, EMACS utilise MI pour contrôler GDB, vous devriez vérifier comment/si elles offrent un tel mécanisme ctrl-C, et comment elles le mettent en œuvre.

EDIT: il semble être -exec-interrupt qui interrompt l'exécution.

+0

Cette réponse est sur place. – sehe

Questions connexes