zoukankan      html  css  js  c++  java
  • Linux 下Valgrind 使用

    Valgrind包括如下一些工具:

    1. Memcheck。这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用未初始化的内存,使用已经释放了的内存,内存访问越界等。这也是本文将重点介绍的部分。
    2. Callgrind。它主要用来检查程序中函数调用过程中出现的问题。
    3. Cachegrind。它主要用来检查程序中缓存使用出现的问题。
    4. Helgrind。它主要用来检查多线程程序中出现的竞争问题。
    5. Massif。它主要用来检查程序中堆栈使用中出现的问题。
    6. Extension。可以利用core提供的功能,自己编写特定的内存调试工具。

    valgrind使用:

       1、 编译源文件,使用命令g++  -g  -O0 segfault.cpp -o segfault

            其中参数的含意为:

            -g 指示编译器在编译时产生调试信息

           -O0 编译器优化等级,O0表示不进行优化

           -o  输出文件名称

       2、使用valgrind 检查内存

             使用如下命令: valgrind  --tool=memcheck  --leak-check=full  --log-file=reportleak  ./segfault

             参数含意:

              --tool=memcheck 使用的工具,默认即为memcheck

              --leak-check=full  要求对与内存错误,给出全部信息

              --log-file=***  表示错误输出文件名

        3、察看生成的文件:          

    如上信息指出了程序内存使用错误的位置。

        具体源文件如下:

              

  • 相关阅读:
    常见排序算法总结(C语言版)
    “仿QQ局域网聊天软件”项目-常用编程技巧总结
    Java集合类之向量Vector
    Java集合类之LinkedList链表
    Java集合ArrayList的应用
    Java集合类之ArrayList
    Java二维数组
    二分查找
    快速排序法QuickSort
    插入排序InsertionSort
  • 原文地址:https://www.cnblogs.com/luosongchao/p/3664628.html
Copyright © 2011-2022 走看看