1. 程式人生 > >關於linux signal 6 (SIGABRT)

關於linux signal 6 (SIGABRT)

我的程式可以正常的執行,但是會不定時的出現SIGABRT訊號,然後程式terminated due to signal 6, 然後重啟。程式報錯的大概範圍我可以確定,而且我檢查日誌發現signal 6產生的位置有時靠前有時靠後(因為程式中有向日志寫入的資訊,有時能看到signal 6是在那條語句的後面產生的,但有時signal 6 在那條語句之前就產生了,當然那條語句也不會寫入日誌了)。因此我排除了程式碼有明顯錯誤,但是又不能確定具體是哪裡發生了錯誤。希望大家幫我想想辦法,有什麼關於 SIGABRT的經驗告我一下。


程序意外退出會在當前目錄下產生‘core’檔案或形如‘core.數字’的檔案比如‘core.1234’
使用命令
gdb 執行程式名 core或core.數字
進入gdb然後使用bt命令
可以檢視程序意外退出前函式呼叫的堆疊,內容為從上到下列出對應從裡層到外層的函式呼叫歷史。
如果程序意外退出不產生core檔案,參考“ulimit -c core檔案最大塊大小”命令