CppDepend
CppDepend的代码规则为LINQ查询,它可以在数秒内构建一个规则。并且,这些规则包含了技术债务评估。默认的规则集包括了超过100条规则,诸如entangled code,dead-code,API breaking changes和bad OOP usage这样的代码缺陷,都可以通过默认的规则集分析。 goto
CppCheck
CppCheck是一个C/C++代码缺陷静态检查工具。不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误。所谓静态代码检查就是使用一个工具检查我们写的代码是否安全和健壮,是否有隐藏的问题。goto
Valgrind
Valgrind是一个GPL的软件,用于Linux(For x86, amd64 and ppc32)程序的内存调试和代码剖析。你可以在它的环境中运行你的程序来监视内存的使用情况,比如C 语言中的malloc和free或者 C++中的new和 delete。使用Valgrind的工具包,你可以自动的检测许多内存管理和线程的bug,避免花费太多的时间在bug寻找上,使得你的程序更加稳固。goto
Asan
ASAN(AddressSanitizer的缩写)是一款面向C/C++语言的内存错误问题检查工具,可以检测如下内存问题:使用已释放内存(野指针),堆内存越界(读写),栈内存越界(读写),全局变量越界(读写),函数返回局部变量,内存泄漏 goto
Cpplint
cpplint是Google开发的一个C++代码风格检查工具,如果是遵循google code style的,可以使用cpplint作为代码规范的一个检查工具。goto
systemtap
监控和跟踪运行中的Linux 内核的操作的动态方法。SystemTap 是监控和跟踪运行中的Linux 内核的操作的动态方法。这句话的关键词是动态,因为SystemTap 没有使用工具构建一个特殊的内核,而是允许您在运行时动态地安装该工具。goto1 goto2