• Valgrind check memory leak


    简介

    • Valgrind工具套件提供了大量的调试和分析工具,帮助您使程序更快、更正确。这些工具中最流行的是Memcheck。它可以检测在C和c++程序中常见的许多与内存相关的错误,这些错误可能导致崩溃和不可预知的行为。

    程序准备

    • 使用-g编译程序以包含调试信息,以便Memcheck的错误消息包含准确的行号。如果您能够容忍速度的下降,使用-O0也是一个好主意。在错误消息中使用-O1行号可能是不准确的,尽管一般来说,在-O1编译的代码上运行Memcheck工作得相当好,而且与运行-O0相比,速度上的改进相当显著。不建议使用-O2或以上,因为Memcheck偶尔会报告不存在的未初始化值错误。

    使用方法

    • valgrind --leak-check=yes myprog arg1 arg2
    • Memcheck是默认的工具——泄漏检查选项, 打开详细的内存泄漏检测器。程序将运行得更慢。是正常的20到30倍,并使用更多的内存。Memcheck将发出关于它检测到的内存错误和泄漏的消息。

    例子

     下面的程序段使用Valring检测查看结果

      #include <stdlib.h>
    
      void f(void)
      {
         int* x = malloc(10 * sizeof(int));
         x[10] = 0;        // problem 1: heap block overrun
      }                    // problem 2: memory leak -- x not freed
    
      int main(void)
      {
         f();
         return 0;
      }
  • 相关阅读:
    mysql 数据库信息常用命令
    Linux 目录详细介绍
    RPC调用和HTTP调用的区别
    maven 常见命令
    SpringCloud微服务常见组件理解
    Java实现CORS跨域请求
    Java 静态代理和动态代理例子
    Mabatis中#{}和${}的区别
    针对海量数据和高并发的主要解决方案
    SOAP webserivce 和 RESTful webservice 对比及区别
  • 原文地址:https://www.cnblogs.com/yjyyjy/p/12013376.html
Copyright © 2020-2023  润新知