我正在处理一个在UNIX环境中用C编写代码的项目。我一直在使用lint工具来检查我的源代码。Lint已经存在很长一段时间了(从1979年起),谁能建议我可以使用的最新代码分析工具呢?最好是免费的工具。
发布于 2008-08-05 22:17:24
不要忽视编译器本身。阅读编译器的文档,查找它可以提供的所有警告和错误,然后启用对您有意义的尽可能多的警告和错误。
另外,一定要告诉编译器将警告当作错误来处理,这样您就不得不立即修复它们(-Werror on gcc)。顺便说一句,不要被-Wall愚弄到gcc身上,并不是所有的警告都是有效的。
您可能需要检查valgrind (免费!)-它“自动检测到许多内存管理和线程错误,并详细分析您的程序。”这不是一个静态检查,但它是一个伟大的工具!
发布于 2008-08-05 21:42:22
对于C代码,绝对应该使用弗莱克林特。我用了它近15年,并发誓。它真正伟大的特性之一是,可以通过代码中的注释("/* lint-e123*/“)选择性地关闭警告。这是一个强大的文档工具,当你想要一些与众不同的东西的时候。“我正在关闭警告X,因此,我做X是有充分理由的。”
对于任何进入有趣的C/C++问题的人,请查看他们站点上的一些示例,看看您是否可以在不看提示的情况下发现bug。
发布于 2008-08-06 00:40:03
我听说过关于clang静态分析仪的一些好消息,IIRC使用LLVM作为后端。如果这是在您的平台上实现的,这可能是一个很好的选择。
据我所知,它所做的不仅仅是语法分析。例如,“自动找虫”。
https://stackoverflow.com/questions/2873
复制相似问题