J'ai un processus qui est appelé par un autre processus qui est appelé par un autre processus et ainsi de suite ad nauseum. C'est un processus enfant dans une longue chaîne d'outils.Existe-t-il un moyen de dire à gdb d'attendre le début et la fixation d'un processus?
Ce processus plante.
Je voudrais attraper ce processus dans gdb pour comprendre pourquoi il plante. Cependant, la seule façon dont je peux penser est:
- démarrer le processus parent d'origine dans la ligne de commande.
- interrogez
ps -C <name process I want to catch>
et obtenez le PID. - lancement gdb, attaché à PID de ce processus.
Ceci est fastidieux, mais généralement fait le travail. Le problème est que la panne actuelle s'exécute très rapidement, et au moment où je capture le PID et lance gdb, il a déjà passé le point de défaillance.
Je voudrais lancer gdb et au lieu de:
(gdb) attach <pid>
Je voudrais faire:
(gdb) attach <process name when it launches>
Est-il possible de le faire?
J'utilise gdb 7.1 sur linux
Mais cela peut devenir assez fastidieux si l'arbre de processus est profond (comme c'est dans mon cas) –
@NathanFellman - Une solution à l'ennui pourrait être d'écrire du code d'extension Python pour gdb qui automatise ce processus. Il pourrait se réveiller après chaque fourchette prise, déterminer si cette fourchette est pertinente, puis continuer si ce n'est pas le cas. – Omnifarious