概述
Valgrind 是一个工具性的框架,可以用来构建动态分析工具。
Valgrind提供的工具可以动态的检测许多内存管理和线程的bug,从细节的角度描述你的程序,当然,你也可以用valgrind来构建新的工具。
快速了解
先有一个基本的认识再对细节进行探究:
Valgrind工具集提供了一些debug和程序分析工具来帮助你的程序运行的更快更好,在这些工具中,最常用的是 Memcheck,它可以检测C和C++程序中经常出现的内存相关的问题,这些问题经常引起程序的崩溃和无法预知的行为。
那么首先来快速使用了解一下Memcheck这个工具
编译程序
Valgrind做为一款代码分析工具,首先我们要有可供分析的程序,
编译程序时带上编译选项-g包含debug信息可以使Valgrind的报错消息对应程序中确切的行数。运行程序
普通运行时采用这种方式
myprog arg1 arg2
而通过Valgrind扫描程序时通过这种方式
valgrind --leak-check=yes myprog arg1 arg2
memcheck是默认选项,–leak-check选项是为了打开细节内存溢出检测器。
注意这时你的程序将会比平常运行的速度慢20-30倍,并且比平时消耗大很多的内存&#x