玩转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 可见它们结果是一致的.

相关推荐
2401_892070981 天前
【Linux C++ 日志系统实战】LogFile 日志文件管理核心:滚动策略、线程安全与方法全解析
linux·c++·日志系统·日志滚动
lwx9148521 天前
Linux-Shell算术运算
linux·运维·服务器
somi71 天前
ARM-驱动-02-Linux 内核开发环境搭建与编译
linux·运维·arm开发
双份浓缩馥芮白1 天前
【Docker】Linux 迁移 docker 目录(软链接)
linux·docker
黄昏晓x1 天前
Linux ---- UDP和TCP
linux·tcp/ip·udp
路溪非溪1 天前
Linux驱动开发中的常用接口总结(一)
linux·运维·驱动开发
此刻觐神1 天前
IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
linux·服务器·学习
2401_892070981 天前
【Linux C++ 日志系统实战】高性能文件写入 AppendFile 核心方法解析
linux·c++·日志系统·文件写对象
航Hang*1 天前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全
-ONLY-¥1 天前
PostgreSQL运维全攻略:从基础操作到远程配置
linux