Linux core文件的生成、大小、路径查看和设置_linux查看core文件路径-程序员宅基地

技术标签: core 文件  Linux基础  linux core文件  

1.设置core文件大小
1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。
2)使用ulimit -c filesize命令,可以限制core文件的大小(filesize的单位为kbyte)。若ulimit -c unlimited,则表示core文件的大小不受限制。如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core文件。在调试此core文 件的时候,gdb会提示错误。
可以将ulimit -c unlimited写入到.bashrc中

2.设置core文件的名称和文件路径
默认生成路径:输入可执行文件运行命令的同一路径下
默认生成名字:默认命名为core。新的core文件会覆盖旧的core文件

a.设置pid作为文件扩展名
1:添加pid作为扩展名,生成的core文件名称为core.pid
0:不添加pid作为扩展名,生成的core文件名称为core
修改 /proc/sys/kernel/core_uses_pid 文件内容为: 1
修改文件命令: echo “1” > /proc/sys/kernel/core_uses_pid
或者
sysctl -w kernel.core_uses_pid=1 kernel.core_uses_pid = 1

b. 控制core文件保存位置和文件名格式
修改文件命令: echo “/corefile/core-%e-%p-%t” > /proc/sys/kernel/core_pattern
或者:
sysctl -w kernel.core_pattern=/corefile/core-%e-%p-%t kernel.core_pattern = /corefile/core-%e-%p-%t
可以将core文件统一生成到/corefile目录下,产生的文件名为core-命令名-pid-时间戳
以下是参数列表:
%p - insert pid into filename 添加pid(进程id)
%u - insert current uid into filename 添加当前uid(用户id)
%g - insert current gid into filename 添加当前gid(用户组id)
%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 添加导致产生core的命令名

3.测试是否能生成core文件
kill -s SIGSEGV $$
查看/corefile目录下是否生成了core文件

4.调试core文件
Eg. test.c

#include<stdio.h>
int main()
{
int *p = NULL;
*p = 0;
return 0;
}

root@ubuntu:~# gcc -o test test.c
root@ubuntu:~# ./test
Segmentation fault (core dumped)
bingo:这里出现段错误并生成core文件了
在/corefile目录下发现core-test-31421-1476266571
开始调试
gdb ./test core-test-31421-1476266571
————————————————
版权声明:本文为CSDN博主「清风徐来_水波不兴」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44660094/article/details/90763563

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiaojun111111/article/details/119863451

智能推荐

PDF 参照流/交叉引用流对象(cross-reference stream)的解析方法_php无法解析压缩的交叉引用和对象流的pdf-程序员宅基地

文章浏览阅读3.8k次。采用交叉引用流对象有以下几点好处:1) 压缩后存储的信息更紧凑;2) 可以访问存储在对象流中的压缩对象,并允许以后加入新的参照选项类型。_php无法解析压缩的交叉引用和对象流的pdf

面试只会问八股?你应该好好思考怎样做一场面试_如果面试一直问八股-程序员宅基地

文章浏览阅读517次。八股文并不能很好地测试候选人水平,我们应该思考更有效的面试方法。_如果面试一直问八股

英特尔Realsense学习笔记番外篇一:QWindowsContext: OleInitialize() failed_qwindowscontext: oleinitialize() failed: "com erro-程序员宅基地

文章浏览阅读2k次。导入pyrealsense2以后,使用PyQt5,会有以下警告:QWindowsContext: OleInitialize() failed: "COM error 0xffffffff80010106 RPC_E_CHANGED_MODE (Unknown error 0x080010106)"此警告在使用过程中没有影响程序的正常执行,如果不需要看到waring可以导入warnings库过滤warning。参考文献:1.WindowsContext:OleInitialize()失_qwindowscontext: oleinitialize() failed: "com error 0xffffffff80010106 rpc_e

linux DSA 开发(一)-程序员宅基地

文章浏览阅读6.5k次,点赞2次,收藏32次。linux DSA 开发(一)本文主要是翻译,原文链接如下:https://www.kernel.org/doc/html/latest/networking/dsa/dsa.html纲要本文档描述了**分布式交换机架构 (DSA)**子系统的设计原则、限制、与其他子系统的交互、如何为该子系统开发驱动程序设计原则分布式交换机架构最少是用于支持使用 Linux 的 Marvell 以太网交换机的子系统(MV88E6xxx),但此后也发展为支持其他供应商。这种设计_linux dsa

论文《最长沙堡保存策略》_沙堡论文-程序员宅基地

文章浏览阅读284次。最长沙堡保存策略Longest Sandcastle Preservation StrategyDOI: 10.12677/MOS.2020.93023, PDF, HTML, XML作者: 黄欣怡, 张 馨, 易毅强:湖南农业大学信息与智能科学技术学院,湖南 长沙关键词: 沙堡;液桥模型;毛细力;Young-Laplace方程;Sandcastle; Liquid Bridge Model; Capillary Force; Young-Laplace Equation摘要: 海滩是一个适合休闲_沙堡论文

如何查看Xen、操作系统及内核版本信息_hypervisor版本查询-程序员宅基地

文章浏览阅读4.6k次。有时在使用非自己搭建的环境平台时会需要查看系统信息,尤其是系统中编译过多个内核时,我们有时会需要当前使用的是哪个版本的内核。因此,一些查看系统版本以及内核版本信息的命令也是需要掌握的。 对于虚拟化环境而言首先要了解的是其VMM,也称为Hypervisor的版本,例如Xen,我们需要了解它的版本,其信息保存在/sys/hypervisor路径下,执行ls /sys/hyperv_hypervisor版本查询

随便推点

c++中类成员函数的相互调用_c++类的成员函数调用其他成员函数-程序员宅基地

文章浏览阅读8.6k次,点赞4次,收藏23次。c++中类成员函数的相互调用_c++类的成员函数调用其他成员函数

Window Linux双系统安装 超详细教程_windows linux双系统-程序员宅基地

文章浏览阅读3.5w次,点赞71次,收藏615次。Window Linux双系统安装历程今天下午搞了几个小时,可谓是困难重重,但是实际上只是被一个很小的问题困住了,其它地方都很简单。接下来简单讲一下安装的步骤以及遇到的问题。先讲一下设备状况:一台12年买的i3 window7 待报废的lenovo 笔记本一个32g的usb3.0另一台新的win10笔记本电脑磁盘分区首先要在安装双系统的电脑上,划分硬盘中的一个分区来装linxu。点击我的电脑(此电脑)->管理-> 磁盘管理比如这里我们的e盘原本有98.55g,然后还有_windows linux双系统

Unity 模型涂鸦-程序员宅基地

文章浏览阅读2.3k次。首先,要获取鼠标点击处对应的UV坐标,详见API:https://docs.unity3d.com/ScriptReference/RaycastHit-textureCoord.htmlAPI中其实已经重画了图片,但只是一个像素,下面给线设置宽度: /// &lt;summary&gt; /// 画线 /// &lt;/summary&gt; /// ..._unity 模型涂鸦

qt使用q3dsurface绘制三维曲面图-程序员宅基地

文章浏览阅读7k次,点赞22次,收藏86次。在QT中使用Q3Dsurface绘制三维图。项目需要,而大部分教程都是比较简单的绘制,不能满足需求,本教程将三维数组数据绘制成三维曲面,在绘制三维曲面时,我原本以为是给入数据,然后由框架拟合出曲面,其实不是,本质上是一个一个点连接的,需要按顺序连接好节点,即一行一列连接,否则曲面就会看不出形状。_q3dsurface

bapi清单_sap me01 me04货源清单 bapi-程序员宅基地

文章浏览阅读956次,点赞2次,收藏11次。FICO模块: FB01创建会计凭证:BAPI_ACC_DOCUMENT_POST 检查会计凭证:BAPI_ACC_DOCUMENT_CHECK FB02修改会计凭证:FI_ITEMS_MASS_CHANGE FB08冲销会计凭证:BAPI_ACC_DOCUMENT_REV_POST FS00创建总账科目:GL_ACCT_MASTER_SAVE AS01创建固定资产:BAPI_FIXEDASSET_CREATE1 AS02更改固定资产转移:BAPI_FIXEDASSET_CHANGE._sap me01 me04货源清单 bapi

【C++ 项目设计】深入JSON处理与项目实践:C++中的高效设计与应用-程序员宅基地

文章浏览阅读220次。在`JSONHandler`中,我们定义了几个核心组件:- **JSON Parser (JSON 解析器)**:负责读取和解析JSON数据。- **JSON Writer (JSON 写入器)**:负责将JSON数据写入文件或其他输出流。- **JSON Manipulator (JSON 操作器)**:提供了一系列方法来修改、查询和操作JSON数据。这三个组件是`JSONHandler`的基石,它们确保了数据的正确读取、写入和操作。

推荐文章

热门文章

相关标签