*** stack smashing detected ***: <unknown> terminated 已放弃 (核心已转储) 栈溢出

在使用gdb调试时遇到'已放弃 (核心已转储)'错误,经排查确定为栈溢出问题。通过修改字符串定义大小解决了一个实例,但还有一种情况在函数结束时才出现错误。此问题与gcc的-fstack-protector选项有关,该选项用于检测并防止缓冲区溢出,当检测到溢出时会终止程序并给出提示。
摘要由CSDN通过智能技术生成

对文件 gdb  test core 出现如下问题

Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51    ../sysdeps/unix/sysv/linux/raise.c: 没有那个文件或目录.


输入  bt   展示详细信息,从上到下顺序为从底层到高层

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007f08657c8801 in __GI_abort () at abort.c:79
#2  0x00007f0865811897 in __libc_message (action=action@entry=do_abort, 
    fmt=fmt@entry=0x7f086593e988 "*** %s ***: %s terminated\n")
    at ../sysdeps/posix/libc_fatal.c:181
#3  0x00007f08658bccd1 in __GI___fortify_fail_abort (
    need_backtrace=need_backtrace@entry=false, 
    msg=msg@entry=0x7f086593e966 "stack smashing detected")
    at fortify_fail.c:33
#4  0x00007f08658bcc92 in __stack_chk_fail () at stack_chk_fail.c:29
#5  0x0000
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值