`
Goldice
  • 浏览: 104704 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

开源工具之valgrind

阅读更多

 

首先对源文件进行编译:
  1. Preparing your program
    Compile your program with -g to include debugging information so that Memcheck's error messages include exact line numbers.
    -O0 a good idea if you can tolerate the slowdown
    -O1 line number in error message can be inaccurate although generally speaking running Memcheck on code compiled at -O1 works fairly well and the speed improvement compared to running -O0 is quite significant.
    -O2 not recommended
  2. Running your program under Memcheck
    ./myprog arg1 arg2
    valgrind --leak-check=yes ./myprog arg1 arg2
    your program will run much slower(eg. 20 to 30 times) than normal and use a lot more memory.

 

然后使用valgrind:

用法: valgrind [options] prog-and-args [options]: 常用选项,适用于所有Valgrind工具

常用选项

  1. --tool=[default: memcheck]
    --tool=memcheck:要求用 memcheck这个工具对程序进行分析
  2. --log-file=filename
    将输出的信息写入到filename.PID 的文件里,PID是运行程序的进行ID
  3. --log-file-exactly=filename
    指定就输出到 filename文件
  4. --log-socket=IP:PORT
    把输出信息发送到网络中指定的IP:PORT 去
  5. --leak-ckeck=yes
    要求对leak给出详细信息
  6. --leak-check=full
    完全检查内存泄漏
  7. --xml=[default: no]
    将信息以xml格式输出,只有 memcheck可用
  8. --gen-suppressions=[default: no]
    如果为yes, valgrind会在每发现一个错误便停下让用户做选择是继续还是退出
  9. --leak-check=[default: summary]
    Leak是指,存在一块没有被引用的内存空间,或没有被释放的内存空间,如 summary,只反馈一些总结信息,告诉你有多少个malloc ,多少个free 等;如果是full 将输出所有的leaks,也就是定位到某一个malloc/free 。
  10. --show-reachable=[default: no]
    如果为 no,只输出没有引用的内存leaks,或指向 malloc返回的内存块中部某处的leaks
  11. --undef-value-errors=[default: yes]
    如果为 yes,memcheck将对无定义值错进行检查

一般我们使用如下命令:
valgrind --log-file-exactly=/path/1.txt --leak-check=full --show-reachable=yes prog-and-args;

 

 

 

0
0
分享到:
评论

相关推荐

    valgrind 介绍

    valgrind是一款运行在linux下的,用来定位c/c++程序中内存使用方面的错误的工具,包括:内存泄漏、使用未初始化的内存、读/写已释放的内存、读/写内存越界、使用malloc/new/new[]和free/delete/delete[]不匹配,等等...

    valgrind教程

    Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind这个名字取自北欧神话中英灵殿的入口。 Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届...

    Valgrind内存调试、内存泄漏检测以及性能分析工具

    Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind这个名字取自北欧神话中英灵殿的入口。  Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届...

    Unix下C程序内存泄漏检测工具Valgrind的安装与使用详解

    Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。 Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Google-O’Reilly开源代码奖。 Valgrind遵守GNU通用...

    Linux开发工具箱--项目开发的最有效途径.pdf

    《Linux开发工具箱:项目开发的最有效途径》将系统性地介绍GNU/Linux的开源工具,并通过可以被读者容易修改的简明示例说明如何使用这些工具,以满足读者的实际需求。《Linux开发工具箱:项目开发的最有效途径》首先...

    valgrid Linux下的内存检查工具

    如何定位应用程序开发中的内存问题,...有一款非常优秀的 linux 下开源的内存问题检测工具:valgrind,能够极大的帮助你解决上述问题。掌握 valgrind 的使用以及工作原理,能够有效地定位进而避免应用开发中的内存问题

    计算机课程设计:C++、java和Python介绍与学习技巧.docx

    - 学会使用调试工具,如gdb、valgrind等。 ## Java Java是一种广泛应用于企业级开发的高级编程语言,具有跨平台、安全、健壮等特点。学习Java需要掌握基本语法和面向对象的思想,了解JVM、多线程、网络编程等基础...

    gprof2dot, 将分析输出转换为点图形.zip

    gprof2dot, 将分析输出转换为点图形 关于 gprof2dot这是一个将多个分析器的输出转换为一个点图( )的python 脚本。它可以:从以下位置读取输出:Linux性能测试valgrind工具的 callgrindsysprofVTune放大器 XE

    HWUT - The Hello-Worldler's Unit Test:软件单元测试(语言独立方法)-开源

    灵活的方法允许包含多种类型的测试,例如内存泄漏检查(使用valgrind),编码规则检查,复杂性检查等。通过在项目的基本目录中对hwut的简单调用来运行测试。 特别是对于C语言,HWUT支持使用'sos'和'sols'模式生成...

    AWTK开发手册-AWTK开发实践指南-中文手册.pdf

    通过良好的架构设计和编程风格、单元测试、动态(valgrind)检查和Code Review保证其运行的稳定性。 丰富的GUI组件。提供窗口、对话框和各种常用的组件(用户可以配置自己需要的组件,降低对运行环境的要求)。 ...

    HelloWorld_cpp:测试的C ++源代码-Source code world

    valgrind(3.11.0) vera ++(1.3.0) 大鼠(2.4) gcovr(3.3) 氧气(1.8.5) 安装 下载项目: $ git clone https://github.com/ExemplesDev/HelloWorld_cpp.git 构建文档: doxygen Doxyfile #other ...

    java俄罗斯方块源码代码最少-cv:履历/概要

    现在,我主要开发用于计算语言学各个部分的工具,从实时语言分析到语料库查询,再到基于规则的机器翻译。 技术能力 如: c++、qt、boost、php、perl、jquery、cmake、qt-creator、visual-c++、valgrind、nlp、机器...

    DFT的matlab源代码-FFT-C:以ANSIC实现的FFT

    该代码使用GCC作为编译器工具链以及GNU make作为项目构建环境来构建和运行。 Git用于版本控制。 libcheck()测试框架用于单元测试。 Valgrind()用于检查内存泄漏。 当然也可以使用其他开发环境(例如Xcode,...

    用matlab代码实现图形的旋转-reviews:回顾我参加的一些在线CS课程

    用matlab代码实现图形的旋转垃圾邮件的 CS 角:课程评论 免责声明:这些是我的主观个人意见! 做出自己的判断。...他们甚至教你如何使用“valgrind”,这是一种代码分析/内存泄漏检测工具,甚至一些专

Global site tag (gtag.js) - Google Analytics