Valgrind 使用简单说明

Valgrind 使用简单说明

ID:47037408

大小:81.00 KB

页数:8页

时间:2019-07-04

Valgrind 使用简单说明_第1页
Valgrind 使用简单说明_第2页
Valgrind 使用简单说明_第3页
Valgrind 使用简单说明_第4页
Valgrind 使用简单说明_第5页
资源描述:

《Valgrind 使用简单说明》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Valgrind使用简单说明Valgrind的概述:Valgrind时建立动态分析工具的框架。它有一系列用于调试分析的工具。Valgrind的架构是组件化的,所以可以方便的添加新的工具而不影响当前的结构。下面的工具是安装时的标准配置:Memcheck:用于检测内存错误。它帮助c和c++的程序更正确。Cachegrind:用于分析cache和分支预测。它帮助程序执行得更快。Callgrind:用于函数调用的分析。Helgrind:用于分析多线程。DRD:也用于分析多线程。与Helgrind类似,但是用不同的分析技术,所以可以检测不同的问题。Massif:用于分析堆。它帮助程序精简内存的使

2、用。SGcheck:检测栈和全局数组溢出的实验性工具,它和Memcheck互补使用。Valgrind能做什么?•内存使用检测,包括:–内存泄漏–非法内存访问–未初始化变量使用–重复释放内存•多线程竞争–检测死锁-检测竞争Valgrind还能做什么?•性能分析–Cachegrind+cg_annotate它模拟CPU中的一级缓存I1,D1和L2二级缓存,能够精确地指出程序中cache的丢失和命中。如果需要,它还能够为我们提供cache丢失次数,内存引用次数,以及每行代码,每个函数,每个模块,整个程序产生的指令数,这些可以看成程序的执行成本。以上数据其实对于app开发意义不大,仅作为参考。

3、使用方法:–Callgrind+callgrind_annotate/kcachegrind比起Cachegrind而言Callgrind更有用。Callgrind在Cachegrind基础上实现,可以可视化展示函数调用关系,以及每个函数在整个进程运行过程中所占的成本。对于•Helgrind/DRD–POSIXAPI误用–潜在的死锁提醒–数据竞争•Massif–内存分析工具,统计进程使用的内存情况,包括堆、栈Valgrind——memcheck用法:valgrind--tool=memcheck--leak-check=yes./grog输出:Memcheck工具主要检查下面的程序错误

4、:使用未初始化的内存(Useofuninitialisedmemory)使用已经释放了的内存(Reading/writingmemoryafterithasbeenfree’d)使用超过malloc分配的内存空间(Reading/writingofftheendofmalloc’dblocks)对堆栈的非法访问(Reading/writinginappropriateareasonthestack)申请的空间是否有释放(Memoryleaks–wherepointerstomalloc’dblocksarelostforever)malloc/free/new/delete申请和释放内

5、存的匹配(Mismatcheduseofmalloc/new/new[]vsfree/delete/delete[])src和dst的重叠(Overlappingsrcanddstpointersinmemcpy()andrelatedfunctions)Callgrind收集程序运行时的一些数据,函数调用关系等信息,还可以有选择地进行cache模拟。在运行结束时,它会把分析数据写入一个文件。callgrind_annotate可以把这个文件的内容转化成可读的形式。它模拟CPU中的一级缓存I1,D1和L2二级缓存,能够精确地指出程序中cache的丢失和命中。如果需要,它还能够为我们提供

6、cache丢失次数,内存引用次数,以及每行代码,每个函数,每个模块,整个程序产生的指令数。这对优化程序有很大的帮助。它主要用来检查多线程程序中出现的竞争问题。Helgrind寻找内存中被多个线程访问,而又没有一贯加锁的区域,这些区域往往是线程之间失去同步的地方,而且会导致难以发掘的错误。Helgrind实现了名为”Eraser”的竞争检测算法,并做了进一步改进,减少了报告错误的次数。堆栈分析器,它能测量程序在堆栈中使用了多少内存,告诉我们堆块,堆管理块和栈的大小。Massif能帮助我们减少内存的使用,在带有虚拟内存的现代系统中,它还能够加速我们程序的运行,减少程序停留在交换区中的几率。

7、1、到www.valgrind.org下载最新版valgrind-3.2.3.tar.bz22、解压安装包:tar–jxvfvalgrind-3.2.3.tar.bz23、解压后生成目录valgrind-3.2.34、cdvalgrind-3.2.35、./configure6、Make;makeinstall用法:valgrind[options]prog-and-args[options]:常用选项,适用于所有Valgrind工具-tool

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。