valgrind的使用

valgrind是一个开源的内存管理框架,valgrind是用于构建动态分析工具的探测框架,它包括一个工具集,每个工具执行某种类型的调试,分析或类似的任务。valgrind的框架是模块化的,所以很容易的创建新的工具而不会影响原有的框架。


许多有用的工具被作为标准而提供。

  1. Memcheck是一个内存错误检测器。它有助于使你的程序,尤其是那些用C和C++写的程序,更加准确。
  2. Cachegrind是一个缓存和分支预测分析器。它有助于使你的程序运行更快。
  3. Callgrind是一个调用图缓存生成分析器。它与Cachegrind的功能有重叠,但也收集Cachegrind不收集的一些信息。
  4. Helgrind是一个线程错误检测器。它有助于使你的多线程程序更加准确。
  5. DRD也是一个线程错误检测器。它和Helgrind相似,但使用不同的分析技术,所以可能找到不同的问题。
  6. Massif是一个堆分析器。它有助于使你的程序使用更少的内存。
  7. DHAT是另一种不同的堆分析器。它有助于理解块的生命期、块的使用和布局的低效等问题。
  8. SGcheck是一个实验工具,用来检测堆和全局数组的溢出。它的功能和Memcheck互补:SGcheck找到Memcheck无法找到的问题,反之亦然。
  9. BBV是个实验性质的SimPoint基本块矢量生成器。它对于进行计算机架构的研究和开发很有用处。


内存检测:

valgrind --tool=memcheck --leak-check=full ./test;

如果要检测调用信息,则使用valgrind --tool=callcheck ./test,别的工具使用方法类似。


 

猜你喜欢

转载自blog.csdn.net/e1256325535/article/details/51176642