问题描述
- C++堆内存越界问题调试
-
最近公司代码老是遇到glibc 断言死机,基本都是另外地方把这边内存踩了,另外地方的内存可能已经被覆盖或者释放后重用,这种情况要怎么查才能还原第一现场?死机一般都只有core文件和日志文件。我们用的是arm或x86嵌入式linux系统,内存一般1GB。 盼高手回复,万分感激!!!
解决方案
补充:嵌入式下用不了valgrind
解决方案二:
这种错误一般是你已有的两种数据结合处理。一个是core dump。用gdb等查看分析调用堆栈。找到出错的地方。如果不能直接找到可疑的的地方。就在那个地方添加自己重要的日志。重现问题。然后根据日志进一步分析
解决方案三:
第二现场一般都能定位到间接原因,关键是在那里加打印也没法捕获第一现场根本原因的,而且一般这种越界第二现场每次都不同地方的。具有随机性,用保护页内存也不行。
解决方案四:
期待高手回复啊,自己顶帖!
解决方案五:
高手在哪里,高手在哪里?!
时间: 2024-10-11 18:22:50