abrt
(Automatic Bug Reporting Tool)是 Linux 系统中用于自动捕获、分析和报告应用程序崩溃(如段错误、断言失败等)的工具集。它由 Red Hat 开发,主要用于 Fedora、RHEL(Red Hat Enterprise Linux)、CentOS 等发行版,帮助开发者和系统管理员快速诊断问题。
自动捕获崩溃
SIGSEGV
、SIGABRT
等信号)时,abrt
会收集核心转储(core dump)、程序日志、堆栈跟踪等调试信息。本地分析与存储
/var/spool/abrt/
目录下,每个问题生成一个子目录。abrt-cli
)和图形界面(gnome-abrt
)查看崩溃详情。报告生成与提交
集成系统服务
abrtd
守护进程监控系统事件,触发崩溃处理流程。abrt-ccpp
(处理 C/C++ 崩溃)、abrt-python
(处理 Python 异常)等。查看已记录的崩溃问题
abrt-cli list
abrt-cli info <问题ID>
手动触发崩溃分析
abrt-retrace-client -v <崩溃目录>
删除某个崩溃报告
abrt-cli rm <问题ID>
禁用/启用 ABRT 服务
systemctl stop abrtd
systemctl disable abrtd
systemctl start abrtd
systemctl enable abrtd
/etc/abrt/abrt.conf
/etc/abrt/plugins/*.conf
ABRT 占用磁盘空间
bash
abrt-cli rm --all
/etc/abrt/abrt.conf
中的 MaxCrashReportsSize
限制总大小。禁用 ABRT
bash
systemctl stop abrtd abrt-ccpp
systemctl disable abrtd abrt-ccpp
bash
dnf remove abrt*
核心转储未生成
ulimit -c
未设为 0
,且 /proc/sys/kernel/core_pattern
包含 abrt
。systemd
的 core dump 管理,与 abrt
功能部分重叠。abrt
专注于用户空间应用。通过合理配置 abrt
,可以高效追踪和修复软件缺陷,但需注意隐私和存储管理。