欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 配置 core dump 文件路径和格式

配置 core dump 文件路径和格式

2024/10/24 14:15:15 来源:https://blog.csdn.net/SaberJYang/article/details/141162009  浏览:    关键词:配置 core dump 文件路径和格式

在 Linux 系统中,当程序崩溃时,系统可以生成一个 core dump 文件,该文件包含了程序的内存映像,有助于调试和分析崩溃原因。你可以通过配置系统来指定 core dump 文件的生成路径和命名格式。

配置 core dump 文件路径和格式

1. 使用 ulimit 命令

ulimit 命令用于设置 shell 会话中的资源限制。你可以使用它来启用 core dump 文件并指定文件大小限制。
例如,启用 core dump 并设置文件大小为无限制:

ulimit -c unlimited

你可以将这条命令添加到你的 shell 配置文件(如 ~/.bashrc 或 /etc/profile)中,以便在每次登录时自动应用:

echo "ulimit -c unlimited" >> ~/.bashrc
source ~/.bashrc

2. 配置 /proc/sys/kernel/core_pattern

/proc/sys/kernel/core_pattern 文件用于指定 core dump 文件的生成路径和命名格式。你可以通过编辑这个文件来配置 core dump 文件的位置。
例如,将 core dump 文件保存到 /var/core/ 目录,并以 core-PID 的格式命名:

echo "/var/core/core-%e-%p-%t" | sudo tee /proc/sys/kernel/core_pattern

其中:

  • %e 表示可执行文件名
  • %p 表示进程 ID
  • %t 表示时间戳

你可以使用其他格式说明符来定制文件名,具体说明符可以参考 man 5 core。

3. 持久化配置

为了使配置在系统重启后仍然有效,你需要将配置添加到 /etc/sysctl.conf 文件中:

sudo sh -c 'echo "kernel.core_pattern=/var/core/core-%e-%p-%t" >> /etc/sysctl.conf'
sudo sysctl -p

4. 创建 core dump 目录并设置权限

确保 core dump 文件的目标目录存在,并且具有适当的权限:

sudo mkdir -p /var/core
sudo chmod 777 /var/core

验证配置

你可以通过以下命令验证当前的 core dump 文件配置:

ulimit -c
cat /proc/sys/kernel/core_pattern

确保 ulimit -c 输出 unlimited,并且 /proc/sys/kernel/core_pattern 显示你期望的路径和格式。

示例

假设你希望将 core dump 文件保存到 /var/core/ 目录,并以 core-程序名-进程ID-时间戳 的格式命名,完整的配置步骤如下:

  1. 启用 core dump 并设置文件大小为无限制:
echo "ulimit -c unlimited" >> ~/.bashrc
source ~/.bashrc
  1. 配置 core dump 文件路径和格式:
 echo "/var/core/core-%e-%p-%t" | sudo tee /proc/sys/kernel/core_pattern
  1. 持久化配置:
sudo sh -c 'echo "kernel.core_pattern=/var/core/core-%e-%p-%t" >> /etc/sysctl.conf'
sudo sysctl -p
  1. 创建 core dump 目录并设置权限:
sudo mkdir -p /var/core
sudo chmod 777 /var/core

通过这些步骤,你可以成功配置 core dump 文件的生成路径和命名格式,并确保配置在系统重启后仍然有效。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com