Java有一些非常好的开源静态分析工具,如FindBugs,Checkstyle和PMD.这些工具易于使用,非常有用,可在多个操作系统上运行并且免费.
可以使用商业C++静态分析产品.虽然拥有这样的产品很棒,但是学生的成本太高,而且通常很难获得试用版.
另一种方法是找到可在多个平台(Windows和Unix)上运行的开源C++静态分析工具.通过使用开源工具,可以对其进行修改以满足特定需求.寻找工具并非易事.
下面是其他人发现或建议的C++静态分析工具的简短列表.
-Weffc++GNU g ++ 选项(来自答案)什么是其他任何人都知道并可以推荐的便携式开源C++静态分析工具?
一些相关链接.
在非托管C/C++代码中,检测内存泄漏的最佳实践是什么?和编码指南,以避免?(好像就这么简单;)
过去我们使用了一些愚蠢的方法:每次内存分配调用都有一个计数器增量,而在释放时减少.在程序结束时,计数器值应为零.
我知道这不是一个很好的方式,有一些捕获.(例如,如果释放由平台API调用分配的内存,则分配计数将与您的释放计数不完全匹配.当然,我们在调用分配内存的API调用时递增计数器.)
我期待您的经验,建议和一些简化此工具的工具参考.
我有.exe加载的.exe和许多插件.dll模块.(我有两者的来源.)跨平台(带源)解决方案是理想的,但平台可以缩小到WinXP和Visual Studio(在我的情况下为7.1/2003).
内置的VS泄漏检测器只给出了调用new/malloc的行,但是我有一个分配包装器,所以完整的符号堆栈跟踪是最好的.
检测器还能够检测.exe及其附带的插件.dll模块中的泄漏.