是否有可能用minGW完成C代码的静态代码分析?我读过,有可能在麦格理的帮助下做这件事。但是可以用MinGW来做吗?
发布于 2014-03-13 10:31:58
明(或,通常,gcc工具链)没有指定的静态分析工具。Clang有一个(clang --analyze)。其他选项是cppcheck或大量的非免费分析器(如coverity或PVS)。
发布于 2014-03-13 10:33:49
这个问题可能会被标记为离题,但我认为它是有效的,所以.
您的第一步是确保打开所有警告(我更喜欢发出警告错误,因为非常、非常、非常罕见的警告-而不是等待扇您耳光的实际bug )。在gcc (我相信MingW会使用)中,你可以用-Wall -Werror来做这件事。您甚至可以打开-Wextra进行更多的警告--尽管即使这样也不能打开所有的东西,而且您可能希望启用特定的警告,比如-Winit-self --但是首先要修复低挂的结果。
在移动到单独的静态分析工具之前,首先修复所有的东西。
C语言有很多很多静态分析工具。通常,作为构建过程的一部分,您将修改构建系统以直接在编译器之前或之后运行分析工具,这样所有警告和错误都会出现在一个地方。
例如Lint、QAC (商业但功能强大)。我确实听说有一些工作要让CLang与MingW一起工作--也许这就是您所指的?
哪种静态分析工具最适合您,将取决于您的项目需求和预算。例如,您是否需要对特定的标准(如MISRA或特定的防御标准等)进行认证?
您还应该理所当然地使用valgrind。这是一个动态分析工具,但非常非常有用。
https://stackoverflow.com/questions/22374999
复制相似问题