valgrind:内存泄漏 memory leak 调试教程

2023-05-16

1.安装

sudo apt install valgrind # 如果找不到,先运行 sudo apt update

2.运行程序

//程序不带参数运行
valgrind --tool=memcheck --leak-check=full --log-file=/home/administrator/workspace/planning/mem_debug.txt ./output/bin/control

//程序带参数运行
valgrind --tool=memcheck --leak-check=full --log-file=/home/administrator/workspace/control/mem_debug.txt ./output/bin/control  --control_conf_file=/home/administrator/workspace/control/output/conf/control/control_conf_RX.pb.txt --vehicle_config_path=/home/administrator/.airs/data/conf/RX-001/vehicle_param.pb.txt --control_calibration_file=/home/administrator/.airs/data/conf/RX-001/calibration_table.pb.txt 

待程序启动后,检查终端中打印的调试信息,看是否出现”malloc/new“等类似的关键字,则相关信息一般都和内存分配有关,再结合代码仔细排查

3、程序结束

  • 一般程序是开启线程循环执行,不会自动结束,若直接在terminal使用ctrl+c或kill -9 <pid> 结束程序,valgrind来不及统计内存泄露相关信息,无法得到完成报告;

  • 可使用如下命令结束程序,可获得完整的valgrind报告:

    # 使用top 或 ps 命令获取程序pid
    kill -TERM <pid>

4. 参考文档

Using Valgrind to Find Memory Leaks - Cprogramming.com

Valgrind参数配置详解_听雨时节的博客-CSDN博客_valgrind 参数

 使用 Valgrind 检测 C++ 内存泄漏 | Senlin's Blog

【Linux】Valgrind工具集详解_熠熠微光的博客-CSDN博客_linux valgrind

DEBUG神器valgrind之memcheck报告分析_学之之博未若知之之要知之之要未若行之之实的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

valgrind:内存泄漏 memory leak 调试教程 的相关文章

  • 倾斜摄影测量无人机炸机的八大原因及“炸机”预防措施

    引言 采用无人机航测的方式代替人工完成相应的测绘工作不仅效率高 xff0c 其精度也有保证 但飞行事故却是一个不容忽视的重要潜在危险源 航测设备的价格往往不低 xff0c 每一个事故的发生都会给客户造成巨大损失 有鉴于此 xff0c 睿铂根
  • 向量积的二维物理意义,二维向量叉乘几何意义

    1 自然语言 二维向量叉乘 xff1a x1 y1 x2 y2 61 x1y2 x2y1值的绝对值是两向量同起点 xff0c 构成平行四边形的面积值为正 xff0c x2 y2 在 x1 y1 逆时针方向值为负 xff0c x2 y2 在
  • Boost.Asio C++ 网络编程之十:基于TCP的异步服务端

    这个流程图是相当复杂的 xff1a 从Boost Asio出来你可以看到4个箭头指向on accept xff0c on read xff0c on write和on check ping 这也就意味着你永远不知道哪个异步调用是下一个完成的
  • 使用usrmod时报错user does not exist

    笔者在sudo usermod a G users whoami 时遇到这个问题使用vigr编辑 etc groups xff1a sudo vigr etc groups内容依次是 xff1a 组名 xff1a 密码 xff1a 组号 x
  • invalid conversion from ‘const char*’ to ‘char*’解决方法

    string类的c str函数返回的是const char类型 xff0c 如果将它用作实参传递给char的形参就会报这个错误解决方法 xff1a 在调用是加 char 转换一下 xff0c 比如 char cfgfile c str
  • undefined symbol的解决记录

    一 看这里说 xff0c 是链接顺序的问题 xff0c 于是在CMakeLists里加了这个 xff1a Wl start group PROJECT SOURCE DIR lib libngraph so PROJECT SOURCE D
  • C++多线程加速for循环

    引用传参需要使用std ref普通循环 span class token macro property span class token directive hash span span class token directive keyw
  • 极简版pytorch实现yolov3-tiny

    参考https github com bubbliiiing yolo3 pytorchtrain py流程 xff1a 加载数据dataloader py正向传播tiny py反向传播loss pydataloader py span c
  • pytorch保存一张图的所有特征图

    需要先了解所用网络的结构 span class token keyword import span torch span class token punctuation span nn span class token keyword as
  • docker问题集锦

    1 http server gave HTTP response to HTTPS client sudo vim etc docker daemon json 添加 insecure registries ip 端口 sudo servi
  • 利用opencv边缘提取矩形框集合覆盖的图像

    contourArea因为以边缘像素中心为边长计算 xff0c 所以面积会小于实际面积opencv python xff1a https docs opencv org 4 x d3 d05 tutorial py table of con
  • opencv中常用的C++轮廓函数

    提取轮廓 std vector lt std vectorcv Point gt contours cv Mat image 61 cv imread 34 34 只检索最外面的轮廓且用端点代替直线段 xff08 水平 xff0c 竖直 对
  • cmake中PROJECT_SOURCE_DIR的遐思

    PROJECT SOURCE DIR为包含PROJECT 的最近一个CMakeLists txt文件所在的文件夹 如以下文件结构 xff1a test 43 build 43 include 43 lib 43 src 43 main cp
  • curl 查看HTTP 响应头信息

    1 curl I 查看HTTP 响应头信息 curl I 34 http www taobao com 34 HTTP 1 1 200 OK HTTP协议 HTTP 返回码 Server Tengine Date Fri 01 Nov 20
  • cmake(7):find_package命令详解

    1 说明 cmake的find package命令对于构建软件提供了极大的便利 xff0c 虽然知道怎么使用已经能解决大部分问题 xff0c 但是cmake支持哪些包 xff1f 为什么它能找到需要的包 xff1f 如果是自己编写的库 xf
  • 关于磁力计和加速度计的融合以及坐标系的对准

    1 关于磁力计的校准 xff0c 我用了简单的方式 xff0c 也就是拿着磁力计360度旋转 xff0c 找到最大最小值 xff0c 然后求得中心点 网上一堆的 2 就是磁力计和加速度计的摆放问题 由于我当时的摆放和加速度计只有Y轴相同 x
  • 基于Keil工具链搭建CMake编译环境

    建立CMake运行环境 搭建基于Keil工具链的CMake环境 xff0c 需要安装下列工具 xff1a CMake xff0c Keil MDK和make xff08 或者Ninja xff09 在安装完成下列工具后 xff0c 将上述工
  • ASN.1编码格式介绍

    ASN 1 我是如何接触到ASN 1的 xff1f 是在查看ECC椭圆曲线签名算法ECDSA的go源代码的时候 xff0c 发现其是使用ASN 1编码格式的 ASN 1抽象语法标记 xff08 Abstract Syntax Notatio
  • CMakeLists完整解析(二)

    CMakeLists完整解析 xff08 二 xff09 这篇我们详细讲解一下CMakeLists txt文件的编写 一 常用命令 1 指定cmake最小版本 cmake minimum required VERSION 3 24 这行命令
  • 基于ROS机器人的3D物体识别与三维重建(二) Kinect2相机标定与点云获取

    Kinect2相机标定与点云数据获取 1 介绍2 相机成像模型2 1 针孔相机模型与畸变修正2 2 RGB D相机测量原理 3 Kinect2相机标定3 1 张正友相机标定法3 2 kinect2配置安装与标定配准 4 点云数据获取4 1

随机推荐