Coredump
通常情况下,core文件(core dump file)会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成第一个文件,许多的程序出错的时候都会产生一个core文件,通过工具分析这个文件,我们可以定位到程序异常退出的时候对应的堆栈调用等信息,找出问题所在并进行及时解决。
使用apport收集
Bianbu 2.0rc1及之后版本,已默认安装apport收集崩溃信息。
简介
apport是一个错误收集系统,会收集软件崩溃、未处理异常并生成崩溃报告。当一个应用程序崩溃或者出现Bug时候,apport就会通过弹窗警告用户并且询问用户是否提交崩溃报告。一旦程序崩溃过一次,就会生成一个.crash文件,记录程序崩溃信息并保存在目录/var/crash
。同一程序,只会保存第一次crash的那份,调试时可删除。
调试
先从崩溃报告中提取Coredump到指定目录,
apport-unpack /var/crash/_usr_bin_bash.0.crash /tmp/crash
gdb调试,
gdb /usr/bin/bash /tmp/crash/CoreDump
如想查看完整符号表,需提前安装相关dbg包(如bash-dbgsym)。
上传崩溃报告
如遇到无法自行解决的崩溃,可选择上传崩溃报告到工单系统,我们将协助您解决。
前提条件
配置工单系统的api key到~/.config/apport/redmine.credentials
文件中
上传
崩溃发生时,会有如下弹窗,按照提示填写相关信息,点击发送即可自动上传崩溃报告并打开浏览器跳转到刚刚上传的崩溃报告。