一、使用valgrind
1、安装
安装超级简单:
sudo apt-get install valgrind
2、使用
运行valgrind -h可以查看详细使用方法,命令格式如下:
valgrind [valgrind -h中的选项] 待测程序 [待测程序的命令行参数列表]
最重要的选项是–tool决定运行哪种Valgrind工具。
例如,使用内存检查工具Memcheck 运行“ls -l”命令 ,执行命令格式如下:
valgrind --tool = memcheck ls -l
Memcheck是默认设置,因此如果要使用它,则可以省略该–tool选项,如:
valgrind ls -l
3、原理
无论使用哪种工具,Valgrind都会在程序启动前控制待测程序。从可执行文件和相关库中读取调试信息,以便在适当时可以根据源代码位置来表示错误消息和其他输出。
然后,待测程序将在Valgrind核心提供的“合成CPU”上运行。当新代码首次执行时,Valgrind核心将程序代码交给选定的工具。该工具将自己的检测代码添加到此处,并将结果交还给核心,核心协调持续执行此检测代码。
添加的检测代码量在不同工具之间差异很大。Memcheck添加了代码来检查每个内存访问和计算的每个值,使其运行速度比