記錄一下linux
Ubuntu16.04下寫的Qt程序,調試時沒問題,運行時偶現崩潰c++
須要在運行時生成core dump文件unix
首先在pro結尾里加入調試
QMAKE_CC += -g
QMAKE_CXX += -g
QMAKE_LINK += -g
在終端輸入 ulimit -c 顯示爲 0code
而後輸入 ulimit -c unlimited源碼
繼續在終端運行編寫的程序it
出錯後,會在當前目錄生成 core 文件io
而後在終端執行 「gdb 你的程序名 core」class
而後輸入 bt 對該錯誤進行跟蹤調試file
(gdb) bt
會出現形以下圖的代碼
#0 0x00007fd05dc8fc37 in __GI_raise (sig=sig@entry=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007fd05dc93028 in __GI_abort () at abort.c:89
#2 0x00007fd05e59a535 in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007fd05e5986d6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007fd05e598703 in std::terminate() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007fd05e598922 in __cxa_throw ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x0000000000505a6c in Calibration::fromPath(boost::filesystem::path) ()
#7 0x0000000000550b32 in TonavRos::run(int, char**) ()
#8 0x000000000050183e in main ()
而後 輸入 up 數字、 down 數字 能夠進入
好比我輸入 up 6
接着輸入 l(list的第一個字母),能夠查看出錯的源碼
https://zhuanlan.zhihu.com/p/48607048