Многопоточный отладчик

GDB имеет серьезные проблемы при отладке с несколькими потоками (pthreads). Есть ли другие хорошие многопоточные отладчики для C/C++ на *nix?

6 ответов

Лично у меня не было особых проблем с GDB при отладке многопоточного приложения, поэтому вам может быть полезно уточнить, какие именно "проблемы" у вас возникли. Это поможет нам лучше ответить вам.

В прошлом я использовал несколько вспомогательных средств при отладке многопоточных приложений в linux, большинство из которых основаны на GDB, а не заменяют его. Они включают:

Кроме того, если вы новичок в отладке в Linux (и даже если нет), я настоятельно рекомендую статью под названием "Отладка приложений Linux", которую вы можете найти здесь:

http://www.scribd.com/doc/3009706/Debugging-Linux-Applications

Allinea DDT... графический отладчик для скалярных, многопоточных и крупномасштабных параллельных приложений, написанных на C, C++ и Fortran.

TotalView - это то, что национальные лаборатории используют для огромных кластеров. Я считаю, что он также имеет хорошую поддержку параллелизма потоков. Вероятно, это вне вашего ценового диапазона, но вы можете попробовать это бесплатно.

Из моего поиска я не нашел хороших многопоточных отладчиков для *nix. GDB, похоже, становится лучше, и в прошлый раз, когда мне приходилось отлаживать многопоточное приложение во FreeBSD (7.0-RELEASE), оно вело себя довольно хорошо, что позволило мне найти причину ошибки.

Отладчик AIX для Windows позволяет отлаживать многопоточные приложения.

Однажды я искал альтернативу GDB, но, к сожалению, все, что я нашел, были основаны на GDB. Я думаю, это потому, что gdb тесно связан с gcc, и сторонним отладчикам сложно следить за каждым изменением gcc.

Другие вопросы по тегам