10

是否有任何工具可以检测和报告用 C 或 C++ 编写的应用程序的错误共享?

4

3 回答 3

3

试试 valgrind 的DRD(数据竞争检测)模块。

从手册看来,它可以用来检测虚假共享。

于 2011-08-16T14:42:26.160 回答
3

试试警长和捕食者。Sheriff 位于https://github.com/plasma-umass/sheriff,而 Predator 位于https://github.com/plasma-umass/Predator。Predator 是一种基于编译器的方法,您必须使用新的 LLVM 编译器重新编译程序。它是迄今为止最详尽的检测工具。Sheriff 是库,但如果您使用 pthreads 库,它只能检测到错误共享。

于 2014-12-24T16:18:49.913 回答
0

Perf("Linux 性能计数器")

命令:

sudo perf record -e cache-misses,anything_else_you_want ./your_program 
sudo perf report 
于 2015-04-20T22:26:41.953 回答