【发布时间】:2012-10-14 21:37:32
【问题描述】:
我想创建一个在编译阶段分析 C 程序的关键部分的工具。我正在寻找可以让我做到这一点的正确算法。它可以在编译器的任何阶段。
【问题讨论】:
-
不要走错路,但就是不要。您需要进行控制流分析,然后分析并发阶段共享的内存,然后尝试猜测是否会导致竞争条件。
-
同意@slugonamission。如果甚至暗示并发访问可能会产生意外的副作用,您必须假设它将发生并相应地编写代码。不知道意味着不理解代码的并发性,没有什么可以代替知道代码。
-
另外,我只是想(我昨晚很累)。如果你真的可以运行代码,看看 Valgrind(使用 Helgrind)。它不是一个静态分析工具,但它可能会给你一些不错的见解。
标签: c multithreading operating-system critical-section