GDB présente de graves problèmes lors du débogage avec plusieurs threads (pthreads). Y a-t-il d'autres bons débogueurs multithread pour C/C++ sur * nix?Débogueur multithread
Répondre
De ma recherche, je n'ai pas trouvé de bons débogueurs multi-thread pour * nix. GDB semble s'améliorer, et la dernière fois que j'ai dû déboguer une application multi-thread sur FreeBSD (7.0-RELEASE), il s'est assez bien comporté, me laissant savoir où était l'erreur.
Une fois, j'ai cherché une alternative gdb, mais malheureusement, tout ce que j'ai trouvé était basé sur gdb. Je pense que c'est parce que gdb est intrinsèquement lié à gcc, et qu'il est difficile pour les débogueurs tiers de suivre chaque changement de gcc.
TotalView est ce que les laboratoires nationaux utilisent pour les grandes grappes. Je crois qu'il a aussi un bon support pour le parallélisme des threads. C'est probablement hors de votre gamme de prix, mais vous pouvez l'essayer gratuitement.
Personnellement, je n'ai pas rencontré de problèmes spécifiques à GDB lors du débogage d'une application multithread, il est donc utile de préciser les problèmes que vous rencontrez. Cela nous aidera à mieux vous répondre.
Il y a plusieurs aides que j'ai utilisées dans le passé lors du débogage d'applications multithread dans linux, dont la plupart repose sur GDB plutôt que de le remplacer. Ceux-ci comprennent:
- DDD http://www.gnu.org/software/ddd/
- Eclipse http://www.eclipse.org/
- Bibliothèque Native POSIX Thread (NTPL) Trace outil http://nptltracetool.sourceforge.net/
De plus, si vous êtes nouveau au débogage sous Linux (et même si vous ne sont pas!) Je recommande fortement le document intitulé "Debugging Linux Applications" que vous pouvez trouver ici:
http://www.scribd.com/doc/3009706/Debugging-Linux-Applications
Allinea DDT ... débogueur graphique pour les applications parallèles scalaires, multithreads et à grande échelle écrites en C, C++ et Fortran.
Le débogueur AIX pour Windows, vous permet de déboguer des applications multithread.
- 1. JDBC multithread
- 2. Débogueur erreur
- 3. programmation multiclient multithread
- 4. GCOV pour applications multithread
- 5. nHibernate session et multithread
- 6. Opération de recherche multithread
- 7. Copies profondes multithread
- 8. Winforms scénario multithread question
- 9. Comment lancer le débogueur IE8 avec le débogueur; commande
- 10. Étape Débogueur pour PHP autre que Zend Débogueur
- 11. Contrôle RichTextBox dans une application multithread
- 12. Bibliothèques multithread pour Objective-C
- 13. Moteur multithread Ralentissement aléatoire fenêtré
- 14. Appel performSelectorOnMainThread => Application multithread?
- 15. SetCurrentDirectory dans une application multithread
- 16. Erreur de débogueur
- 17. SharePoint attachant le débogueur
- 18. Débogueur intégrable pour C++
- 19. Débogage sans débogueur
- 20. Comprendre le Débogueur Symbolique
- 21. Débogueur VS2008 Hang
- 22. Fonction "Débogage multithread" manquante dans VC++ 2008 Express?
- 23. Débogueur PHP avec tests unitaires
- 24. VM et débogueur pour Android
- 25. Débogueur IE 8 et javascript
- 26. Boucle d'événements vs blocage Multithread IO
- 27. Erreurs communes multithread débutants font sur iPhone
- 28. Enregistrement de processus multithread en python
- 29. Les tests de stress multithread échouent
- 30. L'interpréteur Python bloque les requêtes DNS multithread?
Ceci devrait également être étiqueté 'gdb'. – jfm3
Je semble avoir un problème pour déboguer une classe de thread qui est instanciée plusieurs fois (SEGMENTATION FAULT). Est-ce moi ou est-ce la faute de GDB. Au moment de l'exécution, je n'ai pas de défauts de segment –
Vous devez poster une nouvelle question pour quelque chose comme ça, Yan. Aussi, je vous suggère de fournir * beaucoup * plus d'informations quand/si vous le faites; Vous n'avez fourni aucune information utile pour nous permettre de vous aider à résoudre votre problème. – ELLIOTTCABLE