记录使用valgrind调试ROS程序内存泄漏的一次过程

一. 参考资料

1. Valgrind对ROS程序的可视化分析_valgrind ros-优快云博客

2. https://www.zhihu.com/search?type=content&q=valgrind

3. 

二.安装

sudo apt-get install valgrind
sudo snap install massif-visualizer --edge

三. 调试过程

1. 初始状态

2. 使用run rosnode的方式进行debug

valgrind --tool=memcheck --leak-check=yes --log-file=valgrind.log ./devel/lib/trajectory_optimization/trajectory_optimization

有一点需要注意的是,一个是在一个terminal里面运行上面的命令之后,无论是Ctrl^C还是Ctrl^Z都不能再正常结束命令,需要将这个终端窗口关闭才可以,这个时候valgrind.log文件会增加内容

还有一点是感觉valgrind运行一个ROS节点,可能ROS节点会运行很慢,就我的这个节点会在RVIZ输出一些东西,但是迟迟没有输出,但是也可以生成对应的调试的文件的

然后就会在目录下生成valgrind.log调试文件,这个调试文件如下图所示:

看了一下,发现我在gridPathFinder::initGridNodeMap函数有问题,就是是谁在用的时候用的不太对

回去找代码,发现是多次调用了initGridNodeMap()这个函数,但是没有释放相应的内存,改过之后就好了,可以重复分析判断是否已经纠正错误

后边再记录一下如何使用launch文件的prefix前缀来处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值