Une application multithread se bloque et elle ne répond à aucune commande. J'ai essayé des choses suivantes sans chance:Comment faire pour déboguer un processus caché multithread sous Linux?
- Joindre un processus gdb (erreur: (gdb) attacher 6026 Fixation pour traiter 6026 ptrace. Opération non autorisée)
- gstack (gstack juste accroche comme ça
Existe-t-il un bon moyen de déboguer ce processus?
Etes-vous en train d'attacher en tant que root, ou en tant qu'utilisateur qui a créé le processus, ou en tant qu'utilisateur? Avez-vous essayé d'exécuter le programme à partir de gdb avant qu'il n'atteigne le point où il se bloque? –
@Jonatha Leffler J'ai exécuté ce processus en root et j'ai utilisé le même identifiant pour attacher le processus dans gdb. Ce n'est pas un processus de premier plan, c'est un processus démon. – Thangaraj
OK; si elle s'exécute en tant que root et que vous essayez d'exécuter gdb en tant que root, alors ce n'est pas une simple question de privilèges (mais cela peut être complexe). Dans l'ensemble, ce que je ferais est de démarrer le démon dans gdb, en utilisant des options telles que 'set follow-fork-mode' et' set fork-detach-mode'. –