core dump查看

core dump查看

@(论文笔记本)

core dump表示当程序异常终止或崩溃时,将进程此时的内存中的内容拷贝到磁盘文件中存储,以方便编程人员调试。

##1、应用场景
程序报错:Segmentation fault (core dump)

##2、使用core dump

  • 打开core dump
    ulimit -c unlimited

这条命令是在当前的终端环境开启core dump功能,并且不限制core dump文件的大小。如果需要永久生效,就得去修改/etc/security/limits.conf;如果要限制core dump文件的大小,将unlimits换成期望的大小即可(单位为KB)。

  • 使用gdb调试core文件
  • 启动gdb调试gdb demo core
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vMsj4wxo-1635907074410)(./问题出现位置.png)]

可见导致进程终止的信号是SIGSEGV,出现这个信号的是线程1。
函数调用栈为0x000056342394d49e,为yc::Malloc(int len)函数,其参数len的数值为631609952。具体位置是homework.cpp文件的第58行。即当前所执行到的行数。

  • 之后可以通过gdb的各个命令进行调试。
  • 比如l查看第58行的代码
  • 比如thread id进行线程跳转
  • 比如print查看变量
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值