linux下如何找到dump文件被生成到哪里了
在大多数 Linux 系统中,核心转储文件(core dump)通常由系统自动保存在当前工作目录下,或者由配置决定其保存位置。核心转储文件的默认文件名通常包含进程 ID(PID)和程序名,例如 core.PID
或 core.程序名
。
查找核心转储文件的方法:
-
检查当前工作目录:
- 如果进程是在当前工作目录下运行的,核心转储文件可能会保存在该目录下。
- 使用
ls
命令查看当前目录下是否有核心转储文件:ls -l core.*
-
检查
coredumpctl
命令:coredumpctl
是 systemd 提供的一个工具,用于管理和检查核心转储文件。- 列出所有可用的核心转储文件:
coredumpctl list
- 获取特定核心转储文件的详细信息:
coredumpctl info [PID]
-
检查
systemctl
服务状态:- 如果进程是作为 systemd 服务运行的,可以使用
systemctl
检查服务的状态,可能会包含核心转储文件的信息。 - 查看服务状态:
systemctl status 服务名
- 如果进程是作为 systemd 服务运行的,可以使用
-
检查
/etc/sysctl.conf
配置:- 系统配置文件
/etc/sysctl.conf
中可能包含关于核心转储文件的配置。 - 查看配置文件:
cat /etc/sysctl.conf | grep core
- 系统配置文件
-
检查
/var/lib/systemd/coredump/
目录:- 在某些系统中,核心转储文件可能会保存在
/var/lib/systemd/coredump/
目录下。 - 查看该目录:
ls -l /var/lib/systemd/coredump/
- 在某些系统中,核心转储文件可能会保存在
-
检查
ulimit
设置:- 进程的核心转储文件大小可能受到
ulimit
设置的限制。 - 查看
ulimit
设置:ulimit -c
- 如果返回值为 0,表示核心转储文件被禁用。
- 进程的核心转储文件大小可能受到
示例:
假设你已经知道进程 ID(PID)为 912986,可以使用以下命令查找核心转储文件:
ls -l /proc/912986/coredump
或者:
coredumpctl info 912986
这些命令将帮助你找到核心转储文件的位置和相关信息。找到核心转储文件后,可以使用调试工具(如 gdb)进行进一步分析。