百度
360搜索
搜狗搜索

linuxcoredumped命令详细介绍

在 Linux 系统中,核心转储(Core Dump)是程序崩溃时生成的文件,用于调试分析。以下是与核心转储相关的常用命令和配置方法:

一、启用核心转储

1.
查看 / 设置核心转储文件大小限制

  • 查看当前限制
    bash
     

    • 若输出为 0,表示核心转储被禁用。
    • 若为具体数值(单位:块,1 块 = 512 字节),或 unlimited(无限制)。

  • 临时启用(当前终端生效)
    bash
      unlimited  

  • 永久生效(针对用户或系统)

    • 修改用户限制文件(如 ~/.bashrc/etc/security/limits.conf),添加:conf
      * soft core unlimited  # 所有用户启用核心转储

    • 需重新登录或执行 source 使配置生效。

2.
配置核心转储文件的名称和路径

  • 查看当前配置
    bash
     /proc/sys/kernel/core_pattern

    • 默认值可能为 core(生成文件名为 core,位于程序崩溃目录),或包含路径(如 /var/lib/systemd/coredump/%p.core,systemd 环境)。

  • 临时修改(立即生效)
    bash
       

    • 常用转义符:
      • %p:进程 ID
      • %t:时间戳(秒级)
      • %e:程序名
      • %h:主机名
      • %u:用户 ID

  • 永久修改
    编辑 /etc/sysctl.conf,添加或修改:
    conf
    kernel.core_pattern = /path/to/core-%p-%t

    保存后执行 sudo sysctl -p 生效。

二、生成核心转储文件

当程序崩溃(如收到未处理的信号,如段错误、非法指令等),系统会在指定路径生成核心文件(需确保上述配置已启用)。

三、调试核心转储文件

使用 gdb 加载可执行文件和核心文件进行调试:
bash

gdb 可执行文件路径 核心文件路径

gdb bt

gdb list

四、常见问题

  1. 核心文件未生成?

    • 检查 ulimit -c 是否为 0(需启用)。
    • 确认程序崩溃时的信号是否允许生成核心转储(如 SIGKILL 不会生成)。
    • 检查路径权限(如自定义路径需有写入权限)。

  2. 核心文件过大?

    • 通过 ulimit -c <大小> 限制文件大小,或通过 core_pattern 设置路径(如 /tmp/ 避免占用根目录空间)。

  3. systemd 环境下的核心转储

    • systemd 使用 systemd-coredump 管理核心转储,文件存储在 /var/lib/systemd/coredump/,可通过以下命令查看:bash
      systemd-coredump list  

      systemd-coredump info coredump文件

总结

核心转储的关键步骤:

  1. 启用核心转储(ulimit -c unlimited)。
  2. 配置文件名和路径(core_pattern)。
  3. 程序崩溃时生成核心文件。
  4. gdb 调试分析。

根据实际需求调整配置(如系统范围或用户级设置),并注意权限和存储路径的合理性。

阅读更多 >>>  8p处理器是多少

网站数据信息

"linuxcoredumped命令"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:linuxcoredumped命令的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!