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

上一篇:Python笔记(一):安装+爬虫环境配置+打包为EXE文件


下一篇:jquery.validate 远程验证remote使用详解