【问题标题】:Is there a test framework for C that forces race conditions?是否有强制竞争条件的 C 测试框架?
【发布时间】:2011-11-29 18:57:36
【问题描述】:

是否存在强制竞争条件的 C 测试框架?

或者对于 C++ 和 Java,就此而言。

【问题讨论】:

  • 对一个好问题投赞成票!
  • Corensic Jinx。我没有使用过它,因此无法评论它的实用性或有效性。
  • 很好的问题,但一般来说,最细粒度的比赛条件对于通用工具来说太难了。例如,glibc/NPTL 有一些令人讨厌的竞争条件已被报告和忽略,这可能需要数十年或数百年才能在一台机器上发生。当然,它们可能已经在 Google 或 Facebook 的数据中心中多次受到攻击.....

标签: c concurrency


【解决方案1】:

Valgrind 工具 Helgrind 检测(除其他外)使用 pthread 的 C 或 C++ 程序中的数据竞争。

【讨论】:

  • drd 是另一种检测数据竞争的工具。
  • 谢谢;还有ThreadSanitizer
  • 出于某种原因,Helgrind 报告了有关 errno 的竞争,尽管 errno 应该是线程本地的。我试过 ThreadSanitizer,效果很好。它甚至带有RaceVerifier 来确认 ThreadSanitizer 记录的报告。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-16
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多