Ubuntu16.04下寫的Qt程序,調試時沒問題,運行時偶現崩潰 (須要在運行時生成core dump文件,QMAKE_CC += -g)

記錄一下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

相關文章
相關標籤/搜索