打印
[MM32软件]

栈溢出时候有什么现象啊?

[复制链接]
1056|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AloneKaven|  楼主 | 2024-6-28 21:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎么才能判断程序是栈溢出的问题

使用特权

评论回复
沙发
su1yirg| | 2024-8-16 16:11 | 只看该作者
栈溢出是指程序在运行时尝试使用比系统为栈分配的内存空间更多的内存,导致栈空间耗尽的情况

使用特权

评论回复
板凳
lix1yr| | 2024-8-16 17:16 | 只看该作者
栈溢出通常是由于递归调用过深、局部变量过多或者不正确的函数调用导致的

使用特权

评论回复
地板
b5z1giu| | 2024-8-16 18:21 | 只看该作者
最常见的现象是程序突然崩溃,操作系统可能会显示一个错误消息,如“程序已停止工作”或“Segmentation fault”(在Unix/Linux系统中)

使用特权

评论回复
5
zhizia4f| | 2024-8-16 19:23 | 只看该作者
程序可能会尝试访问非法的内存地址,导致操作系统终止程序运行,并可能生成一个核心转储文件(core dump),供后续调试使用

使用特权

评论回复
6
p0gon9y| | 2024-8-16 20:25 | 只看该作者
栈溢出可能会破坏栈上的数据,包括局部变量、函数返回地址等,这可能导致程序行为异常,甚至执行任意代码

使用特权

评论回复
7
lamanius| | 2024-8-16 21:33 | 只看该作者
在某些情况下,栈溢出可以被利用来执行恶意代码,这是一种常见的安全漏洞,称为缓冲区溢出攻击

使用特权

评论回复
8
suw12q| | 2024-8-17 08:30 | 只看该作者
由于栈溢出破坏了程序的正常执行流程,程序可能会表现出不可预测的行为,如无限循环、错误的计算结果等

使用特权

评论回复
9
q1ngt12| | 2024-8-17 09:12 | 只看该作者
在极端情况下,如果栈溢出导致系统资源(如内存)被耗尽,可能会影响到同一系统上的其他程序或整个系统的稳定性

使用特权

评论回复
10
ex7s4| | 2024-8-17 10:24 | 只看该作者
为了避免栈溢出,避免过深的递归调用。

使用特权

评论回复
11
g0d5xs| | 2024-8-17 12:35 | 只看该作者
限制局部变量的大小和数量。使用动态内存分配(如malloc、new)来处理大量数据,而不是依赖栈空间。在编写代码时,确保数组和缓冲区的边界检查,防止缓冲区溢出。使用编译器提供的栈保护选项(如GCC的-fstack-protector选项)来增加安全性

使用特权

评论回复
12
yangxiaor520| | 2024-8-19 08:02 | 只看该作者
程序跑飞,进入hardfualt状态。

使用特权

评论回复
13
菜鸟的第一步| | 2024-8-26 12:00 | 只看该作者
MCU会跑飞

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

2062

帖子

0

粉丝