关注

内存泄漏检测

问题:HTOP时发现进程内存使用不断增长,猜测可能是有内存泄漏情况。
方案一
代码量比较少的情况,可以自己写malloc和free函数,然后用宏定义来替换,自己的malloc和free函数里就分别记录每次分配和释放内存时内存大小和位置记录。
模仿shared_ptr维护一个引用数,在程序结束时如果引用计数表不为空,则打印出存在内存泄漏的相关信息。
方案三ASAN嵌入式更快

g++ -fsanitize=address -o test test.cpp -g // -g 是生成调试信息

生成test可执行文件后直接./test运行该文件
如果有内存泄漏的话,它就会提示堆溢出问题什么的,会定位到文件里的具体行数
在这里插入图片描述
方案四valgrind更全面
正常使用g++ -g -0 test test.cpp后生成test文件
安装valgrind后,使用varlgrind ./test,显示有内存泄漏错误,定位到具体行数
在这里插入图片描述

转载自CSDN-专业IT技术社区

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_44104529/article/details/137299096

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--