Helgrind的一次运行是否足以保证给定的多线程实现是无数据争用且无死锁的?

时间:2013-09-30 09:20:19

标签: multithreading debugging parallel-processing deadlock valgrind

我有一个多线程实现,我想测试它与Helgrind的死锁。 我已经运行它们并根据Helgrind生成的输出成功删除了所有数据争用和死锁。现在我想知道Helgrind如何检测这些错误。它是否从源代码生成所有可能性并基于这些可能性对它们进行分析,还是仅将结果基于它看到的特定运行时交错实例?

1 个答案:

答案 0 :(得分:3)

根据经验我知道Valgrind工具DRD(类似于Helgrind)只发现在运行时遇到的错误,我很确定在Helgrind和任何其他Valgrind工具的情况下也是如此。

此外,生成复杂程序的所有可能结果是不可行的,尤其是在线程化时。