valgrind 的使用
是一个 的软件,用于 ()程序的内存
调试和代码剖析。你可以在它的环境中运行你的程序来监视内存的使用情况,比如 语言
中的 和 或者 中的 和 。使用 的工具包,你可以自
动的检测许多内存管理和线程的 ,避免花费太多的时间在 寻找上,使得你的程序
更加稳固。
Valgrind 的主要功能
工具包包含多个工具,如 !"#"$
,!%%。下面分别介绍个工具的作用:
!"#工具主要检查下面的程序错误:
使用未初始化的内存 &'%%()
使用已经释放了的内存 &*+("% ,)
使用超过 分配的内存空间&*+-",
#%)
对堆栈的非法访问 &*+%"%#)
申请的空间是否有释放 &!(#%."%, #%
%/)
+++ 申请和释放内存的匹配&!%"%
++01/%++01)
% 和 % 的重叠&2/%%%(&)
%)
Callgrind
收集程序运行时的一些数据,函数调用关系等信息,还可以有选择地进行
"模拟。在运行结束时,它会把分析数据写入一个文件。3 可以
把这个文件的内容转化成可读的形式。
Cachegrind
它模拟 ' 中的一级缓存 4565 和 二级缓存,能够精确地指出程序中 " 的丢失
和命中。如果需要,它还能够为我们提供 " 丢失次数,内存引用次数,以及每行代码,
每个函数,每个模块,整个程序产生的指令数。这对优化程序有很大的帮助。