问题: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