core dump调试

文章介绍了如何在Linux系统下开启coredump功能,包括使用`ulimit`命令临时和永久更改coredump文件大小,设置core文件的保存路径,并利用GDB进行程序调试,通过`where`或`bt`命令查看调用堆栈。

1.开启 core dump

  • 临时更改
    # 1. 查看core dump文件大小
    ulimit -c 
    #             默认关闭 core dump ,输出的结果为 0,即程序异常终止时,不会生成 core dump 文件
    # 2. 开启 core dump 功能,不限制core dump 文件大小;
    ulimit -c unlimited
    #            可更改unlimited为需要限制的core文件大小,单位为KB。
    
  • 永久更改core dump文件大小
    sudo vim /etc/security/limits.conf
    
    在这里插入图片描述

2. 修改 core 文件保存的路径

sudo bash -c 'echo /home/xtcl/CoreFile/core-%e-%p-%t > /proc/sys/kernel/core_pattern'

3. GDB调试

gdb 产生core文件的程序 core文件
where或bt #效果相同

参考:
linux (core dump)调试
echo core > /proc/sys/kernel/core_pattern: 权限不够
gdb配置glibc源码调试
GDB complaining about missing raise.c

调试coredump时,可以使用gdb来帮助我们定位问题。首先,确保已经安装了gdb工具。接下来,使用gdb打开coredump文件,命令格式为"gdb <可执行文件路径> <coredump文件路径>"。这样就会进入gdb的调试环境。在gdb中,我们可以使用一些命令来获取关于coredump的信息和调试程序。 1. 使用命令"bt"或"backtrace"来查看函数调用栈,这可以告诉我们程序运行到crash的位置之前经过了哪些函数调用。 2. 使用命令"info registers"来查看寄存器的值,这可以帮助我们理解程序在崩溃时的状态。 3. 使用命令"print <变量名>"来查看变量的值,这可以帮助我们了解程序在崩溃时的数据状态。 4. 使用命令"list"来查看源代码,这可以帮助我们找到问题所在的具体代码位置。 5. 使用命令"run"重新运行程序,这可以帮助我们重现coredump并进行调试。 需要注意的是,在调试coredump时,有时候只能从core文件中找出崩溃的直观原因,而更深层次的原因可能需要结合代码和运行上下文来分析。因此,除了使用gdb命令来查看coredump的信息外,还需要对程序的代码进行分析,以便找到问题所在。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [gdb调试coredump(使用篇)](https://blog.csdn.net/jackhh1/article/details/124434307)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值