core文件生成和路径设置

在程序崩溃时,内核会生成一个core文件,即程序最后崩溃时的内存映像,和程序调试信息。

之后可以通过gdb,打开core文件察看程序崩溃时的堆栈信息,可以找出程序出错的代码所在文件和函数。

1.core文件的生成开关和大小限制  

  1)使用 ulimit -a 命令,可以察看core文件的生成开关和大小限制所有信息(输出内容中 core file size,若为0表示不生成core文件)  

  2)使用 ulimit -c 命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。  

  3)使用 ulimit -c filesize 命令,可以限制core文件的大小(filesize的单位为kbyte)。    

     若用 ulimit -c unlimited (本地调试推荐用该命令),则表示core文件的大小不受限制。

2.core文件的名称和生成路径

  若未设置过core文件生成路径和名称,默认生成在可执行文件运行命令的同一路径下,命名为core。新的core文件生成将覆盖原来的core文件。

   1)  core文件保存位置和文件名设置    通过编辑 proc/sys/kernel/core_pattern,设置文件路径和文件名,可用如下命令:

    echo "/corefile/core-%e-%p-%t" > core_pattern

   所产生的 core 文件会存放到 /corefile 目录下,产生的文件名为 core- 命令名 -pid- 时间戳

  文件名参数列表说明:

      %p - insert pid into filename 添加 pid

      %u - insert current uid into filename 添加当前 uid

      %g - insert current gid into filename 添加当前 gid

      %s - insert signal that caused the coredump into the filename 添加导致产生 core 的信号

      %t - insert UNIX time that the coredump occurred into filename 添加 core 文件生成时的 unix 时间

      %h - insert hostname where the coredump happened into filename 添加主机名

      %e - insert coredumping executable name into filename 添加命令名

posted on   乘影  阅读(11211)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示