Re: C++堆内存越界如何查?
C/C++本地代码调试
C++堆内存越界如何查?
clearsky
2016-05-26, 00:25 上午
最近公司代码老是遇到glibc 断言死机,基本都是另外地方把这边内存踩了,另外地方的内存可能已经被覆盖或者释放后重用,这种情况要怎么查才能还原第一现场?死机一般都只有core文件和日志文件。我们用的是arm或x86嵌入式linux系统,内存一般1GB。
盼高手回复,万分感激!!!
Re: C++堆内存越界如何查?
格蠹老雷
2016-05-26, 17:49 下午
可以试一下Valgrind (http://valgrind.org/ )
Re: C++堆内存越界如何查?
clearsky
2016-05-26, 18:34 下午
嵌入式下用不了,忘记说了。资源有限。
Re: C++堆内存越界如何查?
clearsky
2016-05-27, 15:52 下午
张老师,还有其他办法吗?
Re: C++堆内存越界如何查?
clearsky
2016-05-31, 07:09 上午
老雷,能帮忙看看吗?万分感谢。
Re: C++堆内存越界如何查?
cassie
2016-05-31, 18:56 下午
这几天刚遇到这个问题,gdb 调试core dump的core文件,定位core dump附近的代码,打印附近的指针,看是在哪里指针出错,后来看到指针地址指向了非堆栈的地址空间,才找到是其他地方已经将指针给free掉了。锁的使用问题
Re: C++堆内存越界如何查?
clearsky
2016-05-31, 22:56 下午
楼上能再说详细一点吗?贴点代码?