• valgrind简介与使用


    目录

    1 valgrind简介

    2 常用参数

    3 使用示例

    用了一下asan,感觉比valgrid好用,以后用asan,asan的使用方法内存错误分析工具----asan(AddressSanitizer)的介绍和使用_陈 洪 伟的博客-CSDN博客

    1 valgrind简介

    Valgrind是一款用于内存调试、内存泄漏检测以及性能分析、检测线程错误的软件开发工具,Valgrind 是运行在Linux 上的多用途代码剖析和内存调试软件。主要包括Memcheck、Callgrind、Cachegrind 等工具,每个工具都能完成一项任务调试、检测或分析。可以检测内存泄露、线程违例和Cache 的使用等。Valgrind 基于仿真方式对程序进行调试,它先于应用程序获取实际处理器的控制权,并在实际处理器的基础上仿真一个虚拟处理器,并使应用程序运行于这个虚拟处理器之上,从而对应用程序的运行进行监视。应用程序并不知道该处理器是虚拟的还是实际的,已经编译成二进制代码的应用程序并不用重新进行编译,Valgrind 直接解释二进制代码使得应用程序基于它运行,从而能够检查内存操作时可能出现的错误。所以在Valgrind下运行的程序运行速度要慢得多,而且使用的内存要多得多 - 例如,Memcheck工具下的程序是正常情况的两倍多。因此,最好在性能好的机器上使用Valgrind。


    2 常用参数

    (1)--help:显示帮助信息;

    (2)--version:显示 valgrind 版本;

    (3)--tool=:运行 valgrind 中名为 toolname 的工具,默认 memcheck,还可以为cachegrid、drd、lackey、callgrind、helgrind、massif等;

    (4)--quiet:安静地运行,只打印错误信息;

    (5)--verbose:更详细的信息,增加错误数统计;

    (6)--trace-childer=no | yes:跟踪子线程;

    (7)--track-fds=no | yes:跟踪打开的文件描述;

    (8)--time-stamp=no | yes:增加时间戳到 Log 信息;

    (9)--log-fd=:输出Log信息到文件描述符;

    (10)--log-file=:输出Log信息到指定的文件;

    (11)--xml=yes:将错误信息以xml格式输出,只有memcheck可用;

    (12)--xml-file=:XML输出到指定文件;

    (13)--error-limit=no | yes:如果错误太多,则停止显示新错误;

    (14)--error-exitcode=:如果发现错误,则返回错误代码;

    (15)--leak-check=no | summary | full:对发现的内存泄露给出的信息级别,只有memcheck可用。(建议添加

    (16)--show-reachable=no | yes,用于控制是否检测控制范围之外的泄漏,比如全局指针、static指针等。

    (17)–num-callers=(num):这个值默认是12,最高是50。表示显示多少层的堆栈,设置越高会使Valgrind运行越慢而且使用更多的内存,但是在嵌套调用层次比较高的程序中非常实用。

    (18)--trace-children=no | yes,是否跟入子进程。
     

    3 使用示例

    我一般这样使用valgrind

    valgrind --leak-check=yes --log-file=valgrind_log.txt  ./xxx

    如果上述方法生成的log不足以帮助你判断出内存泄漏的准确位置,那么就把自己的代码逐段注释掉,查找内存泄漏。

  • 相关阅读:
    LeetCode 164. 最大间距
    宁愿“大小周”、每天只写 200 行代码、月薪 8k-17k 人群再涨 | 揭晓中国开发者真实现状
    从软件工程师角度聊聊 Kubernetes
    导入发运地点wsh_locations
    centos7搭建git服务器
    (六)笔记.net core学习之泛型、逆变/协变、泛型缓存
    如何把.mhd和.raw文件转换为DICOM文件
    进程和线程
    MATLAB算法实战应用案例精讲-【图像处理】SLAM技术详解
    openjudge 1.5.22 津津的储蓄计划
  • 原文地址:https://blog.csdn.net/u013171226/article/details/126748969