C++ 多线程C+的好工具+;在MacOSX上调试?

C++ 多线程C+的好工具+;在MacOSX上调试?,c++,debugging,macos,multithreading,C++,Debugging,Macos,Multithreading,我最近从ubuntu切换到MacOSX 我最近也开始大量使用多线程 在MacOSX上调试多线程应用程序时,g++有哪些好的插件/替代品?特别是,我感兴趣的工具,让我“戳”周围的类/结构;要跟随指针,展开成员,显示成员的值,等等 谢谢 使用Shark和CHUD的Xcode是否不符合您的要求?。尤其是 它不像你建议的那样是一个GUI工具,但它会为你节省大量时间。看看Spin和Promela。Spin是一个模型检查器,它运行于代码可能处于的每个状态,以查找安全性和活性方面的损失。根据您的需要,使用sp

我最近从ubuntu切换到MacOSX

我最近也开始大量使用多线程

在MacOSX上调试多线程应用程序时,g++有哪些好的插件/替代品?特别是,我感兴趣的工具,让我“戳”周围的类/结构;要跟随指针,展开成员,显示成员的值,等等


谢谢

使用Shark和CHUD的Xcode是否不符合您的要求?

。尤其是


它不像你建议的那样是一个GUI工具,但它会为你节省大量时间。

看看Spin和Promela。Spin是一个模型检查器,它运行于代码可能处于的每个状态,以查找安全性和活性方面的损失。根据您的需要,使用spin,您可以自己单步执行,并选择下一步运行哪个选项以及应该具有哪些值。您需要用类似于c的promela代码写出您想要测试的部分。Spin比常规调试工具更好—多线程程序不会每次都以相同的方式运行,因此模型检查器比标准调试器更有用。

我发现的最好的方法是记录所需的内容!我从来不相信调试器会使用多线程程序。请注意,我是一名学生,可能我的观察结果与您的情况不太相关。首先,您需要一个线程安全记录器。此外,日志记录可能会极大地改变线程同步和运行的方式,因此当您打开日志记录时,您可能会发现错误不再出现。@matt C/C++有许多很好的日志记录框架。首先,
printf
POSIX
上是线程安全的。另请参见: