我对core文件资料的收集整理

本文介绍了UNIX系统中core文件的基本概念,如何开启或关闭core文件的生成,设置core文件的存储路径和命名规则,以及如何利用core文件进行程序调试。通过修改`ulimit`命令和`/proc/sys/kernel/core_pattern`,可以控制core文件的产生和命名。使用gdb调试core文件是解决问题的关键步骤。
摘要由CSDN通过智能技术生成

//---------------------------------------------------------------
1. core文件的简单介绍
//---------------------------------------------------------------

在一个程序崩溃时,它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。


//---------------------------------------------------------------
2. 开启或关闭core文件的生成
//---------------------------------------------------------------

用以下命令来阻止系统生成core文件:
ulimit -c 0
下面的命令可以检查生成core文件的选项是否打开:
ulimit -a
该命令将显示所有的用户定制,其中选项-a代表“all”。

也可以修改系统文件来调整core选项
在/etc/profile通常会有这样一句话来禁止产生core文件,通常这种设置是合理的:
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
但是在开发过程中有时为了调试问题,还是需要在特定的用户环境下打开core文件产生的设置
在用户的~/.bash_profile里加上ulimit -c unlimited来让特定的用户可以产生core文件
如果ulimit -c 0 则也是禁止产生core文件,而ulimit -c 1024则限制产生的core文件的大小不能超过1024kb


//---------------------------------------------------------------

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
使用 GDB 工具对 MySQL core 文件进行分析和调试的步骤如下: 1.获取 MySQL core 文件:在 MySQL 出现异常时,MySQL 会生成一个 core 文件,用于记录程序崩溃时的内存状态。从产生 core 文件的服务器上,将 core 文件下载到分析工具所在的机器上。 2.安装 GDB:GDB 工具是 Linux 下的一款调试工具,需要进行安装。如果未安装可以通过以下命令进行安装: ``` yum install gdb ``` 3.开启 core 文件的调试:默认情况下,Linux 禁止 core 文件的调试,需要手动进行开启。在 shell 终端中,执行以下命令: ``` ulimit -c unlimited ``` 4.使用 GDB 配置文件:为了方便进行调试,可以使用 GDB 的配置文件自动加载调试信息。在命令行中输入以下命令: ``` echo "set auto-load safe-path /" > ~/.gdbinit ``` 5.启动 GDB 调试:在命令行中输入以下命令启动 GDB 调试: ``` gdb /usr/sbin/mysqld /path/to/core ``` 其中,/usr/sbin/mysqld 是 MySQL 的可执行文件路径;/path/to/core 是 MySQL 生成的 core 文件路径。 6.分析 MySQL core 文件:在 GDB 调试模式下,可以使用一系列命令查看和分析 MySQL core 文件中的数据和信息。例如: ``` bt: 显示运行到崩溃点时的函数调用栈 info registers: 显示当前 CPU 寄存器的值 x/20x $rsp: 显示当前栈帧的堆栈信息 ``` 通过以上步骤,可以使用 GDB 工具对 MySQL core 文件进行分析和调试,更好地定位 MySQL 程序的异常。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值