複数のスレッド (pthread) を使用してデバッグする場合、GDB には深刻な問題があります。*nix 上の C/C++ 用の優れたマルチスレッド デバッガは他にありますか?
6 に答える
個人的には、マルチスレッド アプリケーションをデバッグするときに GDB 固有の問題は発生していません。より適切な回答を提供するのに役立ちます。
私が過去に Linux でマルチスレッド アプリケーションをデバッグする際に使用した支援策はいくつかありますが、そのほとんどは GDB を置き換えるのではなく、GDB に基づいて構築されています。これらには以下が含まれます:
- DDD http://www.gnu.org/software/ddd/
- エクリプスhttp://www.eclipse.org/
- ネイティブ POSIX スレッド ライブラリ (NTPL) トレース ツールhttp://nptltracetool.sourceforge.net/
さらに、Linux でのデバッグが初めての場合 (そうでない場合でも!)、次の場所にある「Linux アプリケーションのデバッグ」というタイトルの論文を強くお勧めします。
http://www.scribd.com/doc/3009706/Debugging-Linux-Applications
Allinea DDT ... C、C++、および Fortran で記述された、スカラー、マルチスレッド、および大規模な並列アプリケーション用のグラフィカル デバッガー。
TotalViewは、国立研究所が巨大なクラスターに使用するものです。スレッドの並列処理も適切にサポートされていると思います。おそらくあなたの価格帯からは外れていますが、無料で試すことができます。
From my search, I have not found any good multi-thread debuggers for *nix. GDB seems to be getting better, and the last time I had to debug a multi-threaded application on FreeBSD (7.0-RELEASE) it behaved fairly well, letting me find where the error was.
I once looked for a gdb alternative, but unfortunately every one I found was based on gdb. I think this is because gdb is intricately tied to gcc, and it's hard for third-party debuggers to keep up with every gcc change.
Windows 用の AIX デバッガーで、マルチスレッド アプリケーションをデバッグできます。