好奇的探索者,理性的思考者,踏实的行动者。
Valgrind 是个开源的工具,功能很多。例如检查内存泄漏工具---memcheck。
用法: valgrind [options] prog-and-args
[options]
: 常用选项,适用于所有Valgrind工具
-tool=<name>
最常用的选项。运行 valgrind中名为toolname的工具。默认memcheck。
memcheck ------> 这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况。
callgrind ------> 它主要用来检查程序中函数调用过程中出现的问题。
cachegrind ------> 它主要用来检查程序中缓存使用出现的问题。
helgrind ------> 它主要用来检查多线程程序中出现的竞争问题。
massif ------> 它主要用来检查程序中堆栈使用中出现的问题。
extension ------> 可以利用core提供的功能,自己编写特定的内存调试工具
检查内存泄漏
valgrind --tool=memcheck --leak-check=full ./test
例如:
#include <iostream>
using namespace std;
int main()
{
for(int i = 0; i < 1000000; i++)
{
new int(2);
}
return 0;
}
valgrind --tool=memcheck --leak-check=full ./a.out