极客油画

signal: segmentation fault (core dumped) 报了这种错误,到哪里去查看dump文件呢?

  1. 检查 core 文件配置
$ cat /proc/sys/kernel/core_pattern
|/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h

上面命令的输出:

  • |: 表示核心转储不会直接生成一个传统的文件,而是通过管道。
  • /usr/lib/systemd/systemd-coredump: 是接收并处理核心转储数据的程序。
    • 集中管理:所有核心转储被统一收集和存储,默认位置通常在 /var/lib/systemd/coredump/
    • 自动压缩:转储文件会被自动压缩,节省磁盘空间。
    • 便于调试:可以使用 coredumpctl命令轻松列出、查询和分析所有历史崩溃记录。
  • %P %u %g %s %t %c %h: 这些是传递给 systemd-coredump程序的参数,提供了关于崩溃进程的关键信息
    • %P : 崩溃进程的进程标识符(PID)
    • %u : 进程所有者的用户ID(UID)
    • %g : 进程所有者的组ID(GID)
    • %s : 导致进程崩溃的信号编号
    • %t : 崩溃发生的时间戳(从 Unix 纪元开始的秒数)
    • %c : 核心转储文件的大小限制,受 ulimit -c设置影响
    • %h : 发生崩溃的主机名

core_pattern文件内容如果是文件路径的话,文件路径支持以下格式变量:

参数​ 含义​ 示例​
%e 程序名 core-test
%p 进程 ID core-1234
%t 时间戳(Unix 时间) core-1620000
%u 用户 ID core-1000
%s 导致崩溃的信号编号 core-11(SIGSEGV)
%h 主机名 core-server1
  1. 检查 core 文件开关​
$ ulimit -c

若输出 0,表示禁止生成;若为 unlimited,则无限制。

  1. 调试 core 文件
$ gdb /path/to/program_executable /path/to/core_file

本文发表于 0001-01-01,最后修改于 0001-01-01。

本站永久域名「 jiavvc.top 」,也可搜索「 极客油画 」找到我。


上一篇 « 下一篇 »

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image