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


記錄一下

Ubuntu16.04下寫的Qt程序,調試時沒問題,運行時偶現崩潰

需要在運行時生成core dump文件

首先在pro結尾里加入

QMAKE_CC += -g
QMAKE_CXX += -g
QMAKE_LINK += -g

在終端輸入 ulimit -c 顯示為 0

然后輸入 ulimit -c unlimited

繼續在終端運行編寫的程序

出錯后,會在當前目錄生成 core 文件

然后在終端執行 “gdb 你的程序名 core”

然后輸入 bt 對該錯誤進行跟蹤調試

(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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM