社区
C++ 语言
帖子详情
stack smashing错误?
MagiSu
2007-07-20 08:17:09
我的代码(Ubuntu 7.04,gcc 4.1)出现了stack-smashing错误,而且这个错误是整个
函数return的时候出来的(gdb显示),因此半天也不知道是哪里出了问题。我试着加入
-fno-stack-protector编译试图找到错误所在行,但是没有成功。有谁知道如何解决这
个问题吗?只要能调试出发生segment fault的代码行就可以了。
...全文
166
1
打赏
收藏
stack smashing错误?
我的代码(Ubuntu 7.04,gcc 4.1)出现了stack-smashing错误,而且这个错误是整个 函数return的时候出来的(gdb显示),因此半天也不知道是哪里出了问题。我试着加入 -fno-stack-protector编译试图找到错误所在行,但是没有成功。有谁知道如何解决这 个问题吗?只要能调试出发生segment fault的代码行就可以了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mymtom
2007-07-21
打赏
举报
回复
越界写访问,破坏了栈,重点查strXXX(strcpy, strcat...)函数的使用,还有sprintf, svprintf也有可能。
如果程序不大,就把代码贴上来吧。
stack
smashing
detected,程序段
错误
今天在写程序的时候,突然出现"
stack
smashing
detected"的
错误
.用经常用的调试方法,GDB,语句输出等均不能定位问题的出处. 先说解决方案: 出现这个问题的原因是:在程序函数中,数组越界访问,在程序运行时没出现问题,但当函数return的时候就会出现上面的
错误
. 解决办法是:gdb, where命令定位到出错的函数,然后检查函数中数组的长度,使其满足程序的要求. 参考
stack
smashing
detected
错误
解决
在运行的时候报
stack
smashing
detected
错误
问题,原因是GCC的一种检测“缓存溢出”的保护机制.当分配的内存不够时,会继续执行;但是在程序结束返回时才出现
错误
提示 解决办法就是在编译链中加入对该检查的屏蔽 “-fno-
stack
-protector” 这样就可以避免问题的出现了
Linux C++
stack
smashing
detected
错误
Linux C++
stack
smashing
detected
错误
陈拓 2021/09/12-2020/09/12 调试程序遇到一个
错误
:
stack
smashing
detected 原因是数组开小了,出现了数组越界。 原数组定义: char destfile[64] = {0}; 改成 char destfile[256] = {0}; 问题解决。 ...
stack
smashing
detected(c++报错)
由于地址错乱导致的
stack
smashing
detected
[error]
stack
smashing
detected
运行环境: 程序是在Linux环境中的 qt 运行的。 遇到过两种出错情况:一. 程序运行后中止,出现上述
错误
。二. 程序在当前Linux版本上编译后可运行,放到其它Linux版本上不能够运行,出现上述
错误
。简意就是,本Linux系统版本上编译的可执行程序只能在同Linux系统版本运行。 **第一种情况:**出现
stack
smashing
detected,即栈溢出,但不会定位到哪里出现溢出。 1.原因:C语言比较“宽松、灵活,语法检查不严格”,在遇到数组越界、栈溢出等问题时编译时不会报出来,等到程序运行
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章