麒麟os系统崩溃报告可通过五种方法定位:一、用ksysreport工具在控制中心→系统诊断中查看;二、用coredumpctl命令查systemd-coredump日志;三、检查kdump生成的/var/crash/下vmcore摘要;四、读取apport生成的/var/crash/*.crash文件;五、用dmesg提取内核环形缓冲区痕迹。

如果您在麒麟OS中遭遇系统异常崩溃,但未自动弹出错误报告界面,则可能是崩溃日志未被正确捕获或存储路径未被及时访问。以下是定位与查看系统崩溃报告的多种方法:
一、通过系统内置诊断工具直接调取崩溃报告
麒麟OS预置的ksysreport工具在生成诊断包时默认包含最近一次内核级崩溃事件的上下文快照(如kdump触发后的vmcore摘要、systemd-coredump记录及关联服务状态),适用于图形界面仍可操作的轻度崩溃场景。
1、点击屏幕左下角“开始菜单”,选择“控制中心”。
2、在控制中心左侧导航栏中,进入“系统管理”→“系统诊断”。
3、在右侧主界面中,点击“查看历史崩溃记录”按钮(若该按钮灰显,请先执行步骤4)。
4、勾选“启用崩溃信息自动采集”,并确保“包含核心转储摘要”选项已激活。
5、点击“刷新列表”,系统将扫描/var/crash/与/tmp/目录下以core_或ksysdiag_开头的压缩包,并解析其中的crash_summary.txt文件。
二、手动查找并解析systemd-coredump生成的用户态崩溃日志
当应用程序(如浏览器、WPS、Qt程序)发生段错误等用户态崩溃时,麒麟OS默认启用systemd-coredump服务进行捕获,原始core文件及元数据按时间戳存于/var/lib/systemd/coredump/,需配合coredumpctl命令提取结构化信息。
1、打开终端,执行sudo coredumpctl list,列出所有已登记的崩溃事件,重点关注TIME列中接近崩溃时刻的条目。
2、根据进程名筛选,例如查看微信崩溃记录:sudo coredumpctl list com.tencent.WeChat。
3、获取最新一次崩溃的详细堆栈:sudo coredumpctl info com.tencent.WeChat。
4、若需导出完整堆栈文本供离线分析,运行:sudo coredumpctl dump com.tencent.WeChat --output /home/$USER/crash_wechat.log。
5、检查输出文件中<strong><font color="green">Signal: SIGSEGV</font></strong>(段错误)、<strong><font color="green">Executable: /opt/tencent/wechat/WeChat</font></strong>及<strong><font color="green">Stack trace:</font></strong>段落,确认崩溃触发点。
三、检查kdump生成的内核级崩溃转储(vmcore)及其摘要
当系统发生内核panic导致黑屏或强制重启时,需依赖kdump机制捕获完整的内存镜像(vmcore)。该功能需预先启用且预留内存,其报告以压缩包形式存放于/var/crash/,内含vmcore-dmesg.txt和vmcore-info.txt等关键摘要文件。
1、确认kdump服务是否运行:sudo systemctl is-active kdump-tools,返回active表示已启用。
2、进入崩溃存储目录:cd /var/crash/。
3、列出最新生成的转储目录:ls -t | head -n 1,典型目录名为20260405142201/(格式为YYYYMMDDHHMMSS)。
4、进入该目录,检查是否存在vmcore-dmesg.txt:ls vmcore-dmesg.txt。
5、查看内核panic第一现场信息:sudo cat vmcore-dmesg.txt | grep -A 20 -B 5 "<strong><font color="green">Kernel panic</font></strong>",定位<strong><font color="green">Call Trace:</font></strong>起始行及紧邻的模块名。
四、启用并读取Apport故障上报服务的日志缓存
麒麟OS兼容Ubuntu的Apport框架,可在GUI程序崩溃后自动生成.crash文件并暂存于/var/crash/,内容为结构化错误描述与环境快照,无需调试符号即可识别常见崩溃模式。
1、验证Apport是否启用:sudo systemctl is-enabled apport,返回enabled表示已开机自启。
2、列出所有待处理崩溃报告:ls /var/crash/*.crash 2>/dev/null || echo "无待处理.crash文件"。
3、若存在文件(如_usr_bin_gnome-calculator.1000.crash),使用cat查看:sudo cat /var/cash/_usr_bin_gnome-calculator.1000.crash。
4、重点提取字段:<strong><font color="green">ProblemType: Crash</font></strong>、<strong><font color="green">ExecutablePath: /usr/bin/gnome-calculator</font></strong>、<strong><font color="green">ProcCmdline: gnome-calculator</font></strong>及<strong><font color="green">SegvAnalysis</font></strong>区块。
5、清除已处理报告以释放空间:sudo rm /var/crash/*.crash,避免日志堆积干扰新问题识别。
五、使用dmesg实时捕获尚未写入磁盘的内核崩溃痕迹
部分瞬时panic可能未触发kdump完整保存,但内核环形缓冲区(ring buffer)中仍残留关键线索,dmesg可即时读取该缓冲区,尤其适用于刚重启后立即排查的场景。
1、启动后立即打开终端,执行dmesg -T | tail -n 100,以本地时间格式显示最近100行内核消息。
2、过滤panic与oops关键字:dmesg -T | grep -i -E "(panic|oops|fatal|unable to handle)"。
3、若发现<strong><font color="green">[Tue Apr 5 14:22:01 2026] Kernel panic - not syncing: Fatal exception</font></strong>类行,记录其前后5行上下文。
4、导出全部内核日志供深度分析:sudo dmesg -T > /home/$USER/dmesg_boot.log。
5、比对/var/log/syslog中同一时间点的服务状态:sudo grep "2026-04-05T14:22" /var/log/syslog,确认是否有<strong><font color="green">systemd[1]: Started Crash recovery service.</font></strong>等关联记录。








