Program terminated with signal 6, Aborted. (最后发现是数组越界导致)


外网崩溃现象:

  1.多台物理机中的多个进程消失,而且都是场景进程。

  2.core文件都很小,看了 ulimit -a 和 cat proc/pid/limits  (都很正常。看这个是为了以后core文件正常。)

  3.场景日志中堆栈信息都是 libc.so.6 (abort 或者 malloc)

  4.场景日志中在崩溃堆栈信息的前一条都是某玩家离线打印出来的日志。

 

gdb调试core文件后报错内容如题:Program terminated with signal 6, Aborted.

跟之前的主程交流后,可能double free,也可能内存不足,要查下最近提交代码,最后发现是数组越界解决办法:1.查看每个崩溃堆栈信息,运气好就碰到跟代码逻辑相关的。2.查看最近提交代码,多查看数组越界,double free。

------------------------------------------------

结果已经知道了,那么分析现象,第4条是偶然,第3条的 malloc是偶然,所以有时候现象会影响自己的判断,要时刻保留疑问。

以下是堆栈信息:


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM