关于c ++:多线程调试器

关于c ++:多线程调试器

Multithreaded Debugger

使用多个线程(pthread)进行调试时,GDB存在严重问题。
* nix上还有其他用于C / C ++的良好多线程调试器吗?


在调试多线程应用程序时,我个人没有任何GDB特定问题,因此它可能对您详细说明所遇到的"问题"有帮助。这将帮助我们更好地回答您。

过去,我在Linux中调试多线程应用程序时曾使用过多种工具,其中大多数工具是基于GDB而不是取代GDB的。这些包括:

  • DDD http://www.gnu.org/software/ddd/
  • Eclipse http://www.eclipse.org/
  • 本机POSIX线程库(NTPL)跟踪工具http://nptltracetool.sourceforge.net/

另外,如果您不熟悉Linux调试(即使您不是!),我也强烈建议您标题为"调试Linux应用程序"的论文,您可以在这里找到:


Allinea DDT ...图形调试器,用于用C,C ++和Fortran编写的标量,多线程和大规模并行应用程序。


TotalView是国家实验室用于大型集群的工具。我相信它也对线程并行性有很好的支持。它可能超出了您的价格范围,但您可以免费试用。


从我的搜索中,我没有找到* nix的任何好的多线程调试器。 GDB似乎正在变得更好,上一次我不得不在FreeBSD(7.0-RELEASE)上调试多线程应用程序时,它表现得相当不错,让我找到了错误所在。


Windows的AIX调试器,让您调试多线程应用程序。


我曾经寻找过gdb的替代方案,但不幸的是,我发现的每一个都是基于gdb的。我认为这是因为gdb与gcc紧密相关,并且第三方调试器很难跟上gcc的每次更改。


推荐阅读