静态代码分析

时间:2014-03-13 10:02:19

标签: c

是否有可能使用minGW完成静态代码C代码分析?我已经读过,有可能在mygcc的帮助下完成它。但是可以用 MinGW 来实现吗?

2 个答案:

答案 0 :(得分:1)

Mingw(或者,通常是gcc工具链)没有指定静态分析工具。 Clang有一个(clang --analyze)。其他选项包括cppcheck或全部非免费分析仪(如Coverity或PVS-studio)。

答案 1 :(得分:0)

这个问题可能会被标记为非主题,但我认为它是有效的......

你的第一步是确保所有警告都被打开,(我更喜欢发出警告错误,因为非常,非常非常罕见的是一个警告,而不是一个真正的错误等着你的脸)。在gcc(我相信MingW使用)中,你可以使用-Wall -Werror执行此操作。您甚至可以打开-Wextra以获取更多警告 - 尽管即使这仍然没有打开所有内容,您可能希望启用特定警告,例如-Winit-self - 但要修复低悬的果实第一

执行此操作,并在转到单独的静态分析工具之前先修复所有内容。

c语言有许多静态分析工具可用。通常,您可以修改构建系统,以便在编译器之前或之后直接运行分析工具,作为构建过程的一部分,以便所有警告和错误都出现在一个位置。

例子包括Lint,QAC(商业但功能强大)。我确实听说有一些工作要让CLang和MingW合作 - 也许这就是你所指的?

哪种静态分析工具最适合您,取决于您的项目要求和预算。例如,您是否需要针对特定​​标准(例如MISRA或特定防御标准等)进行认证?

您还应该使用valgrind作为理所当然的事。这是一个动态分析工具,但非常非常有用。