qt程序在linux下生成core dump
linux系统支持生成core dump,设置系统就行,通过ulimit命令查看一下系统是否支持core dump 功能。
通过ulimit -c,可以查看core file大小的配置情况,如果为0,则表示系统关闭了core dump。 通过ulimit -c unlimited来打开。注意打开之后,只对当前shell进程有效
在根目录下新建目录CoreDumpFile,设置好权限,再在shell中输入下面的命令
echo "/CoreDumpFile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
core 文件即会存放到 /CoreDumpFile目录下,生成的文件名格式为: core- 命令名 -pid- 时间戳(没设置路径则在shell当前目录下)
在当前shell中运行程序,如果崩溃,则会生成core文件
注:上面的所有设置在关闭当前shell后就失效
可以用qtcreator、gdb调试core文件
qtcreator调试方式
1、Debug->Start Debugging->Load Core File 2、在弹出的窗口选择对应的文件
3、点击OK,开始调试,会看到code里的信息
直接使用gdb调试
# gdb 可执行文件 core文件 gdb ./binary_file_xxx xxx.core # 输入bt可看到函数调用栈
PS:我找技术文章时,看到很多转载下面这篇文章的,我忍不住想吐槽,转载能带点脑子吗?这不是误人子弟吗?