0

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

4

1 回答 1

3

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

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

于 2013-09-30T13:21:22.467 回答