玩转centos 下的core 文件

玩转centos 下的core 文件


author: hjjdebug

date: 2024年 03月 06日 星期三 12:38:35 CST

description: 玩转centos 下的core 文件


一: 准备一个会产生core 的文件

cat main.cpp

int main(void)

{

char *p=0;

*p=123;

return 0;

}

编译并执行之

./temp

段错误(吐核)

但是查看当前目录却没有生成core文件

$ ls

main.cpp main.o Makefile temp temp.pro

二: 原因查找:

ulimit -a |grep core

core file size (blocks, -c) 0

core file size 为0 是不会生成core 文件的

三: 设置core size 为unlimited(不限制大小)

ulimite -c unlimited

重新执行文件

./temp

段错误(吐核)

root@ct50 \~/temp# ls

core.11538 main.cpp main.o Makefile temp temp.pro

即可生成core 文件, 但它是带pid 的, 每次都会生成不同的core 文件,不方便查找且浪费空间.

怎样 把core 文件名称修改为core, 去掉pid ?

这需要修改系统参数. 可以借用sysctl 命令. 当然也可以不用,灵活掌握最重要!

sysctl 命令简单介绍:

Linux中的sysctl支持需要Procfs,

可以使用sysctl读取和写入sysctl数据。 可用参数是/proc/sys/下列出的参数。

sysctl -a 可列出所有系统参数, 配合grep 可以顾虑出感兴趣的参数

sysctl -w 可以修改参数的值

例如:

sysctl -w net.core.rmem_max=26214400 //修改网络内核读缓存的大小

临时修改也可以直接修改/proc/sys 下对应的参数.

如果想使修改在下次开机时生效, 可以直接编辑/etc/sysctl.conf文件

将内核参数写入配置文件中,需要使用sysctl -p命令重新加载配置文件使参数生效。

四: 查看当前core 的生成状态:

$sysctl -a | grep kernel|grep core

kernel.core_pattern = |/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e %P %I %h

kernel.core_pipe_limit = 4

kernel.core_uses_pid = 1 //我们关心的是这个

可见core 是使用了pid 的

把它临时改为不使用pid, 进入/proc/sys/kernel 目录

查看:

$ls core*

core_pattern core_pipe_limit core_uses_pid

直接查看值也可以

$ cat core_uses_pid

1

五: 修改内核参数

$ echo 0 > core_uses_pid

用sysctl -w 也可以,这里就忽略了.

六: 再次查看:

$ cat core_uses_pid

0

用sysctl 查看看

$ sysctl -a |grep kernel|grep core

kernel.core_pattern = |/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e %P %I %h

kernel.core_pipe_limit = 4

kernel.core_uses_pid = 0

可见它们结果是一致的.

相关推荐
Yana.nice7 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
DFT计算杂谈11 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
Zhang~Ling12 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
DeeplyMind12 小时前
Linux 深入 per-VMA lock:Linux 缺页路径如何摆脱 mmap_lock
linux·per-vma lock
爱写代码的森12 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
XMAIPC_Robot13 小时前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发
重生的黑客14 小时前
Linux 进程优先级、切换与调度:从孤儿进程到 O(1) 调度模型
linux·运维·服务器·进程优先级·nice
骑上单车去旅行15 小时前
MD5校验对比脚本
linux·服务器·windows
平生幻15 小时前
Linux 常用命令
linux
ShirleyWang01216 小时前
让headlamp控制台能访问
linux·服务器·python·k8s·k3s