外網崩潰現象:
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是偶然,所以有時候現象會影響自己的判斷,要時刻保留疑問。
以下是堆棧信息: