linux下qt程序崩溃时生成core文件,分析core文件看看是哪有问题
- 让release版本也包含debug信息, 修改pro文件
CONFIG(release, debug|release) {
CONFIG *= force_debug_info
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO -= -O2
}
- 配置操作系统使其可以产生core文件
通过
ulimit
命令查看一下系统是否配置支持了dump core的功能。
通过ulimit -c
,可以查看core file大小的配置情况,如果为0,则表示系统关闭了dump core。
通过ulimit -c unlimited
来打开。注意打开之后,只对当前shell进程有效
-
在shell中运行可执行程序,如果出现崩溃,会在当前目录下生成
core
文件 -
分析core文件
方法1:直接使用gdb调试
# gdb 可执行文件 core文件
gdb ./binary_file_xxx xxx.core
# 输入bt可看到函数调用栈
方法2:在qtcreator中打开core文件调试
1. 调试-> 开始调试 -> 载入核心文件
2. 加载core文件
3. 加载对应的可执行文件
4. 点ok即可
网友评论