当前位置: 技术问答>linux和unix
关于Unix下的core dump错误,请高手明示Unix下C/C++程序中的注意事项
来源: 互联网 发布时间:2015-03-19
本文导语: 公司给A、B、C、D四地市开发的程序,程序代码一样,但程序在A市前2天一运行就出现: Unaligned access pid=78996 va=0x140104004 pc=0x120011640 ra=0x120014ce4 inst=0xa4310000 Unaligned access pid=78996 va=0x14010400c pc=0x120011654 ...
公司给A、B、C、D四地市开发的程序,程序代码一样,但程序在A市前2天一运行就出现:
Unaligned access pid=78996 va=0x140104004 pc=0x120011640 ra=0x120014ce4 inst=0xa4310000
Unaligned access pid=78996 va=0x14010400c pc=0x120011654 ra=0x120014ce4 inst=0xa4b10008
Unaligned access pid=78996 va=0x14010544c pc=0x120014cf4 ra=0x120014ce4 inst=0xa58c1448
Memory fault(coredump)
的错误,我调整代码无计于事,今天突然怀疑起硬件的原因,是某一块的内存有问题,因为主机上,主要就跑这个程序,每次启动,OS给它同样的一个内存布局,所以,我这次,就先运行一个别的占内存较大的程序,再启动公司的这个程序,真不然,程序现在又在跑了。
但我觉得有点解释不过去,我对C/C++语言比较熟,但对系统我确实不是很熟,所以请高手提示一下,要是能总结一下Unix下C/C++程序中的一些特别应当注意事项,真是感谢了。
希望我这贴子能抛砖引玉。
Unaligned access pid=78996 va=0x140104004 pc=0x120011640 ra=0x120014ce4 inst=0xa4310000
Unaligned access pid=78996 va=0x14010400c pc=0x120011654 ra=0x120014ce4 inst=0xa4b10008
Unaligned access pid=78996 va=0x14010544c pc=0x120014cf4 ra=0x120014ce4 inst=0xa58c1448
Memory fault(coredump)
的错误,我调整代码无计于事,今天突然怀疑起硬件的原因,是某一块的内存有问题,因为主机上,主要就跑这个程序,每次启动,OS给它同样的一个内存布局,所以,我这次,就先运行一个别的占内存较大的程序,再启动公司的这个程序,真不然,程序现在又在跑了。
但我觉得有点解释不过去,我对C/C++语言比较熟,但对系统我确实不是很熟,所以请高手提示一下,要是能总结一下Unix下C/C++程序中的一些特别应当注意事项,真是感谢了。
希望我这贴子能抛砖引玉。
|
生成CORE文件了吗?如果有的话,用pstack命令先看看core文件中内核最后记录的堆栈信息是什么再下结论吧,如果有条件的话,带-g编译一个新的执行程序然后,用dbx跟踪一下试试~
|
估计还是你的程序有问题。我以前也遇到过类似问题,其它地方的程序运行的好好的,
就这一个地方老是出CORE,我们一开始也怀疑硬件问题。用dbx跟踪也很困难,因为
真正产生core的地方不一定是有问题的地方(特别是每次出core的位置都不同的情况
更是如此),就这样我们陷入了僵局。在一次不经意的代码review中我们发现了一处
内存使用不当之处,我们抱着侥幸的心理将程序修改后反映到现地。
结果几个星期过去后,再也没出问题。
兄弟,努力吧,冷静下来好好分析一下自己的程序,你应该能找到问题的所在。
就这一个地方老是出CORE,我们一开始也怀疑硬件问题。用dbx跟踪也很困难,因为
真正产生core的地方不一定是有问题的地方(特别是每次出core的位置都不同的情况
更是如此),就这样我们陷入了僵局。在一次不经意的代码review中我们发现了一处
内存使用不当之处,我们抱着侥幸的心理将程序修改后反映到现地。
结果几个星期过去后,再也没出问题。
兄弟,努力吧,冷静下来好好分析一下自己的程序,你应该能找到问题的所在。
|
我也遇到过同样的情况,不过没有生成core文件
只是有Unaligned access pid=78996 va=0x140104004 pc=0x120011640 ra=0x120014ce4 inst=0xa4310000
Unaligned access pid=78996 va=0x14010400c pc=0x120011654 ra=0x120014ce4 inst=0xa4b10008
Unaligned access pid=78996 va=0x14010544c pc=0x120014cf4 ra=0x120014ce4 inst=0xa58c1448
等的字样
但结果还是理想的,我也想知道为什么
gz
只是有Unaligned access pid=78996 va=0x140104004 pc=0x120011640 ra=0x120014ce4 inst=0xa4310000
Unaligned access pid=78996 va=0x14010400c pc=0x120011654 ra=0x120014ce4 inst=0xa4b10008
Unaligned access pid=78996 va=0x14010544c pc=0x120014cf4 ra=0x120014ce4 inst=0xa58c1448
等的字样
但结果还是理想的,我也想知道为什么
gz