Linux下如何定位程序运行段错误位置-core文件

本文介绍了Linux系统中core文件的含义及其在程序出现段错误时的重要性。当程序因段错误崩溃时,核心转储文件会记录堆栈信息,便于使用gdb调试。文章提到了如何检查和设置core文件大小,并列举了引起段错误的常见原因,如数组越界、野指针操作、修改只读数据和栈溢出。建议通过检查数组边界和验证指针来预防段错误。
摘要由CSDN通过智能技术生成

core文件

core文件也叫核心转储文件,是程序在运行过程中出现段错误退出时,用于保存让gdb调试的堆栈错误信息的文件
某些Linux系统下默认是没有设置core文件的,需要我们查看一下;
如果查看到core为0字节的话,就说明系统没有设置,那么我们要在使用之前进行设置,假设我们设置为1024字节

ulimit -c   -c表示的就是core文件
ulimit -c 1024   将core的文件大小设为1024字节  unlimited就是无限大

在这里插入图片描述
当出现段错误的时候,我们的程序执行路径下就会生成一个core文件,然后可以

gdb -c core 二进制执行程序
gdb -c core test  test为我们编译时生成的debug版本的可执行文件

举个栗子:
在这里插入图片描述
加载到gdb解析:
在这里插入图片描述

造成段错误的原因

  1. 数组访问越界
  2. 对野指针进行操作
  3. 修改只读块数据
  4. 栈溢出

<

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值