今日关注:]=华山论栈=[=========-
可能很多人心中都有一个武侠梦,记得小时候搬个小凳子,到邻家院子里蹭电视看,正值金庸先生的射雕英雄传热播,一伙人屏息静气,全神贯注,随着郭靖黄蓉出山入海,驰骋大漠。然后觉得自己比憨憨的郭大侠,还是要聪明一点点,于是找来布袋子,装上沙子,苦练武功。如今想来奇怪,怎么单练这铁掌帮的功夫呢?真是好坏不分,值得检讨。
此去经年,武侠梦碎。没办法华山论剑,只能论一下栈了。
什么是堆栈我们说堆栈,其实堆是堆(Heap),栈是栈(Stack)。一般我们写程序时不太关心堆栈,因为编译器会帮我们处理。但是还是有必要把它们弄清楚,不然有时候出了莫名其妙的问题,会无从下手。比如说堆栈溢出,就好比一个幽灵,非常难发现。看起来一切都挺好,程序编译运行,测试,可能都好好的,直到它突然出现,发出致命一击,导致系统崩溃。
(资料图片)
先看一个典型的存储器示意图,编译器把RAM划分为静态存储区,堆区,栈区。静态存储区用于存放全局变量,静态变量,编译的时候它的大小也就确定了;紧挨着的是堆(Heap)区,由程序调用malloc,free等函数来分配和释放;栈区由编译器自动分配和释放,用来传递参数,存放局部变量等。栈比较特殊,正常情况下,它是后进先出的。
栈的使用是从高地址,也就是Top of Stack开始,向下增长。
那为什么要把局部变量分配在栈里呢?因为单片机访问栈用的指令,和访问全局变量区域用的指令是不一样的,访问栈的指令速度更快。再一个就是这些局部变量,只有所在函数被调用的时候才会分配,函数返回时分配的空间就被收回了,不像全局变量始终占用内存。
我们看一个程序,用到了比较多种类的变量类型。
编译后的map文件:
我们可以看到全局变量,还有静态局部变量都放到了静态存储区。非静态的局部变量在map文件是找不到的。
特别关注一下P1这个指针型变量,因为它是全局变量,所以变量本身分配在静态存储区,但是它指向的用Malloc申请的内存,是在堆区。如下图:
堆栈溢出堆栈溢出,主要是指栈溢出。因为我们在堆中,用malloc, 或new函数申请内存时,如果空间不够了,函数会返回NULL,很清楚它的空间不够了。而栈由于是函数调用时分配,占用空间大小跟调用深度有关,编译器很难确定最大需要多少空间。如果栈空间过小,直接的结果就是当栈增长超过栈底,堆中的数据,甚至是静态存储区数据被冲掉,导致不可预知后果。
那怎么避免堆栈溢出,至少知道发生了堆栈溢出呢?
一个就是在启动文件里,把堆栈的值尽量改大。编译的时候用 –info=stack可以大概看一下,各个函数占用栈的大小。
综合编译后RAM剩余空间的大大小,可以直接把栈空间放到最大。在下面的源文件中可以直接修改堆和栈的大小。对于静态存储空间,编译器会根据实际使用大小进行分配,我们不用关心。
还有一个方法,在栈底放置特殊字符,然后在程序运行过程中,监测特殊字符是否被更改,如果被更改,大概率是发生了栈溢出,此时可以采取一定的补救措施。如何操作呢?先在启动文件用EXPORT Stack_Mem导出栈底,在主程序定义同名外部函数extern void Stack_Mem(void); 然后就可以往栈底写入数据了,参见前面的程序。
这种方法的缺点就是,跑飞了的野指针,也可能篡改这一区域数据,造成误判。还有一个就是,因为做数据比较判断,要消耗CPU时间,一般只能周期性检测,在没检测出问题之前,栈溢出有可能已经造成程序出问题了。你用过更好的方法吗?欢迎一起来探讨。
相关阅读
-
今日关注:]=华山论栈=[=========-
可能很多人心中都有一个武侠梦,记得小时候搬个小凳子,到邻家院子... -
当前时讯:百度获准城市高级辅助驾驶地...
近日,广州、深圳两地首次发放城市高级辅助驾驶地图许可,百度首批... -
【世界时快讯】互联网+医疗产业的赋能下...
为实现2035年“建成健康中国”的远景目标,我国卫生健康工作当前已进... -
每日信息:偏光片大厂日东电工韩国工厂...
10月5日消息,全球偏光片大厂日东电工(NittoDenko)位于韩国的一座偏... -
当前头条:嵌入式必将成为物联网发展的先驱
嵌入式系统应用在物联网中并非是被其包含的关系,两者之间的关系在... -
热讯:物联网和嵌入式的 结合发展对提...
物联网是多种技术相结合后的产物,而嵌入式系统是一种具有监视、制、...
精彩推送
-
今日关注:]=华山论栈=[=========-
可能很多人心中都有一个武侠梦,记得小时候搬个小凳子,到邻家院子... -
当前时讯:百度获准城市高级辅助驾驶地...
近日,广州、深圳两地首次发放城市高级辅助驾驶地图许可,百度首批... -
热讯:物联网和嵌入式的 结合发展对提...
物联网是多种技术相结合后的产物,而嵌入式系统是一种具有监视、制、... -
天天微资讯!加上一些物联网的发展嵌入...
科学发展如浪潮般汹涌向前,万物互联成为现如今的一大焦点,以前的... -
【世界时快讯】互联网+医疗产业的赋能下...
为实现2035年“建成健康中国”的远景目标,我国卫生健康工作当前已进... -
当前头条:嵌入式必将成为物联网发展的先驱
嵌入式系统应用在物联网中并非是被其包含的关系,两者之间的关系在... -
每日信息:偏光片大厂日东电工韩国工厂...
10月5日消息,全球偏光片大厂日东电工(NittoDenko)位于韩国的一座偏... -
视讯!伴随着利好政策的推进我国医疗信...
伴随着利好政策的推进,我国医疗信息化市场继续保持较快的发展速度... -
全球热消息:让人工智能技术更好服务大...
今天,是国庆长假的第一天。一场将前沿科技与日常生活深度融合,富... -
世界微头条丨智慧医疗提升全方位全生命...
均衡发展优质医疗服务。聚焦重点人群健康需求,智慧医疗提升全方位... -
天天新动态:强化信息化支撑作用推动新...
我国的医疗信息化建设起步较晚,主要受政策驱动,通过一系列的政策... -
最新快讯!医疗健康领域的数字化和信息化...
近年来,在物联网、人工智能、大数据等新技术应用助推下,数字化医... -
【全球速看料】实现碳中和与业务增长两...
2021年ST实现了182亿美元营收,预计今年营收将超过150亿美元;相比... -
每日时讯!我国亟需开启医疗卫生新基建补...
面对问题,我国亟需开启医疗卫生新基建,补齐短板并发挥科技的带动... -
全球新动态:推进物联网开发,贸泽电子...
2022年10月20日–专注于引入新品推动行业创新™的电子元器件分销商... -
天天快播:没想到,最后进了一个 996 ...
哈喽,大家好,我是月亮。一个工作n年的老程序员啦,平时在公号上给... -
全球微动态丨看看这些智慧交通解决方案...
2019年开始,取消高速公路跨省收费站的政策逐渐落地,改变了过去多... -
世界滚动:“智慧交通”是未来交通行业的...
智能交通系统是未来交通系统的发展方向,它是将先进的信息技术、数... -
世界快消息!TVS管选型-技能进阶,特别...
常规内容也写的差不多,特别是第④篇,我相信仔细看过的小伙伴一定... -
天天看点:真实经历:那个女人来骗我的...
女人走在前面,男人怀里抱着个小孩儿跟在后面。当这样的组合目标明... -
性能车有哪些?性能车的优缺点有哪些?
性能车有哪些?很多品牌都有自己的性能车,比如奔驰AMG系列、宝马M系... -
套牌是什么意思?车辆被套牌怎么报案?
套牌是什么意思?套牌车是指参照真牌车的型号和颜色,将号码相同的假... -
买家用MPV该怎么选?MPV有哪些车型?
MPV有哪些车型?市场上有很多MPV车型,有国产的,合资的,进口的。... -
什么是多连杆独立悬挂?多连杆独立悬架...
什么是多连杆独立悬挂?多连杆独立悬挂,可分为多连杆前悬挂和多连杆... -
汽车保单如何查询?查车险保单怎么查询?
汽车保单如何查询?1、电话查询这种方式可以查询到车险的报价方面的... -
水平对置发动机是什么?水平对置发动机...
水平对置发动机是什么?发动机活塞平均分布在曲轴两侧,在水平方向上... -
驭胜是什么车?改善驭胜共振解决方法是...
驭胜是什么车?驭胜,是福特与江铃的合资公司-江铃股份打造的中国乘... -
qx开头的车牌是什么车?qx开头车牌是什单位?
qx开头车牌是什单位?qx车牌是西部战区的军车车牌,首字母q代表的是... -
一般车辆的报废期是多长时间?各类车的...
一般车辆的报废期是多长时间?一、家用车非运营的、小型车,都是没有... -
轮胎的寿命一般多少年?汽车轮胎寿命几...
汽车轮胎寿命几年更换?1、花纹深度在1 6mm(最低磨耗)时应即时更换... -
正时链条是什么意思?换正时链条需要多...
换正时链条需要多少钱?更换正时链条的价格在1000-2000元左右,发动... -
什么是柴油闪点?柴油燃点和汽油燃点有...
什么是柴油闪点?柴油闪点是指柴油液体中挥发出来的蒸汽和氧气形成混... -
买车有哪几种贷款方式?汽车贷款方式有...
汽车贷款方式有哪些?一、信用卡分期付款信用卡分期付款买车是最受大... -
闯红灯100%能被拍下吗?闯红灯一般多久...
闯红灯一般多久可以查出来?一般情况下,如果是通过网上的车辆违章进... -
【当前热闻】汽车智能网联化趋势不可逆...
智能网联汽车技术发展情况。智能化已经融入到人们生活的方方面面,... -
天天关注:智能网联汽车近年来取得了较...
随着互联网与智能汽车技术快速发展,二者融合的趋势更加紧密,智能... -
每日快报!智能网联汽车将成为未来最具有...
在汽车产业方面,我国总体水平处于国际领先地位,自主品牌市场份额... -
汽车打蜡的作用是什么?汽车打蜡是什么?
汽车打蜡的作用是什么?1、上光作用: 上光是车蜡的最基本作用,经过... -
天天快讯:苹果正在开发具有新的家庭视图...
10月14日消息,据报道,苹果正在开发新版本的iMessages应用,该版本... -
今日精选:智能化已成汽车产业的发展潮...
智能网联汽车是一种跨技术、跨产业领域的新兴汽车体系,不同角度、... -
全球热消息:微软几乎要从头开始构建 W...
Windows12是由微软公司(Microsoft)开发的桌面端操作系统。微软几乎... -
全球最资讯丨科沃斯、石头科技开打扫地...
当下,扫地机器人品牌混战,对于部分企业来说,压低价格可能会帮助... -
世界微动态丨外公走了,我的牵挂没了!
今天凌晨,我突然从梦中惊醒。我梦到外公了!我梦到小时候外公带我... -
天天快看:从R15到R17,一文看懂5G的技术创新
2022年6月初,通信标准组织3GPP第96次全会在匈牙利布达佩斯如期召开... -
【独家】讨论 | 创新者窘境的另一面:...
1997年,哈佛商学院教授克莱顿•克里斯坦森(ClaytonChristensen)... -
全球今热点:顺丰、菜鸟“较劲”末端物流
根据国家邮政局数据显示,中国快递业务量已经连续8年居世界第一,且... -
全球快资讯:了解一下LCD和OLED是什么?...
LCD液晶屏是LiquidCrystalDisplay的简称,LCD的构造是在两片平行的... -
动态:全国光伏发电装机容量约 24.7 ...
我们对于太阳能的利用比较熟悉的产品就是太阳能热水器了,但是一般... -
防爆轮胎的优点是什么?什么是防爆胎?
什么是防爆胎?防爆胎,它的官方正式名称应该叫做--缺气保用轮胎,从... -
汽车保值率怎么计算?汽车保值率计算方...
汽车保值率怎么计算?按终端成交价计算的保值率才是真正的保值率现阶... -
车架的作用是什么?什么是汽车车架?
车架的作用是什么?支撑、连接汽车各总成,使各总成保持相对正确的安... -
小型车是什么意思?紧凑型车和小型车的...
小型车是什么意思?小型车即A0级车,轴距一般在2 2米至2 5米之间(... -
烧机油如何判断?机油量变少了就是算烧机...
烧机油如何判断?凉车烧机油每天早晨第一次着车时,后排气管会有比较... -
sworks是什么牌子自行车?sworks自行车多少钱?
sworks是什么牌子自行车?sworks是闪电品牌单车。1974年的情况下,是... -
红标思域是什么?红标思域用的是什么变...
红标思域是什么?红标思域是思域的一款性能车,普通版本的思域和红标... -
一般变速箱油多久换一次?变速箱油到底换...
一般变速箱油多久换一次?1、自动变速箱在正常情况下,每2年或者每行... -
汽车的组成结构有哪些?汽车的基本构成是...
汽车的组成结构有哪些?汽车的整体结构基本由发动机、底盘、车身和电... -
迈腾和帕萨特哪个好?迈腾和帕萨特二选一...
迈腾和帕萨特哪个好?国内中型车龙头帕萨特,售价1849-2829万,实际... -
肖特Solutions杂志 | 走向增强现实
摘要:肖特RealView®玻璃晶圆,重塑现实消费电子行业正在寻找下... -
Stellantis计划到2030年 在北美将需要...
据外媒报道,10月18日,Stellantis北美首席运营官Mark Stewart在底... -
昌原工厂每小时将能够生产60辆汽车 预...
据外媒报道,通用汽车高管在10月19日表示,该公司将对位于韩国首尔... -
土耳其汽车制造商 9个月汽车总产量增长...
据外媒报道,土耳其汽车制造商协会(OSD)表示,2022年前9个月,土耳... -
吉利董事长有意未来将所持股份增至10% ...
有知情人士透露,浙江吉利控股集团董事长李书福考虑增持英国超豪华... -
全国98%咖啡种植都在云南 品质与世界匹敌
按照云南省给出的一组数据:全国98%的咖啡种植面积和99%的咖啡产量... -
世界速看:特斯拉官宣把毫米波雷达扔进...
超声波雷达是汽车中最为常见的一种传感器。它是通过反射超声波装置... -
中国制造有多牛?80秒可以生产一台发动机
10秒可以生产一台铝轮毂,80秒可以生产一台发动机,5分钟可以下线一... -
【全球聚看点】理想汽车L8发布会召开,...
理想L8,应该是今年下半年以来,“戏”最多的一款车。9月30日下午,... -
国内游戏行业巨大不确定性 腾讯在全球...
腾讯再有本事,也不得不出海讨生活。一家游戏发行市场负责人在讨论... -
抖音广告应有尽有 甚至包括付费的盗版资源
今年3月,一位名叫骏斯热门漫画的视频创作者在网上被挂,这名抖音博... -
现代汽车集团在美国电动汽车注册量超越...
现代汽车集团今年在美国的电动汽车注册量超越福特汽车,跃居第二位... -
宝马多方下注 在中国投资123亿生产电动车
作为全球豪华汽车巨头,宝马在未来的电动汽车上也开始加大投资,这... -
天天关注:消费者预算缩减,估2022年全...
Oct 19,2022----根据TrendForce集邦咨询调查显示,2022年第三季全... -
今日热闻!星纵物联携手Assek Technolog...
SemtechLoRa®设备和LoRaWAN®通讯协议助力实现更及时、高效、智能... -
环球视讯!泰科电子(TE Connectivity...
此次泰科电子与1688平台的强强联合,将进一步扩展泰科电子针对中小... -
【世界热闻】随着信息技术的不断转型与...
目前,随着信息技术的不断转型与升级,加快了汽车设计的脚步,智能... -
世界视点!获600家半导体公司授权代理,...
基于强大的产业互联网能力,世强硬创可以实现售前商品介绍、售中交... -
世界热点!我国在自动驾驶领域做出重大...
一直以来,自动驾驶都是大家的关注焦点之一。因此针对大家的兴趣点... -
【全球播资讯】Pickering Electronics...
英国Clacton-on-Sea,2022年10月19日拥有超过50年经验的小型化和高... -
购物车被装满?今年双十一或将再扩容
相信不少人听过这样一个段子,说有人去充话费,要求工作人员给电话... -
吉尼斯纪录起源于英国 被公认为全球纪...
相信很多人都听说过吉尼斯世界纪录,吉尼斯纪录起源于英国,被公认... -
新日股份发布2022业绩预增公告 同比增...
近日,新日股份发布2022年前三季度业绩预增公告:预计前三季度净利... -
世界要闻:我国各地在积极打造智慧交通...
一块整面墙的超大屏幕,地面公共交通、水路航道运输,甚至高速公路... -
天猫微信小程序上线 天猫超市送货上门
最近有网友发现,天猫近期在微信中上线了一款名为天猫超市小铛家微... -
他亲手创办的新能源汽车公司市值超福特...
仅仅两年之前,他还被视为美国最炙手可热的创业新贵,被媒体盛誉为... -
RTX4090已经开启降价模式 黄牛奔溃模式...
毕竟是万元的产品,而其需求还是在锐减的,叠加NVIDIA的供货充足,... -
IntelArcA7系列显卡发布 被发现存在待...
Intel Arc A7系列显卡发布后,很快被发现存在待机功耗过高的问题... -
微软“改名部“USB-IF组织发布USB4v2.0...
10月19日,USB-IF组织正式发布了全新的USB4 v2 0标准规范,带来了... -
被大家口诛笔伐4080显卡取消发售 老黄翻车!
这几天大家都被 NVIDIA 最新的旗舰显卡 RTX 4090给刷屏了,它的... -
32位应用及游戏正在被淘汰 游戏帧率平...
32位应用及游戏正在被淘汰,苹果在这方面进度最快,安卓阵营因为情... -
每日消息!研报丨消费性需求不见起色,供...
据TrendForce集邦咨询研究显示,在高通胀影响下,消费性产品需求疲... -
【全球报资讯】小米公司七大高管用啥手...
看来,黎万强对小米6亮银探索版是真爱啊。6月23日,小米在香港四季... -
天天快报!获奖90亿的雷军晒小米七大高管...
据《华尔街日报》当地时间周五报道,小米在IPO(首次公开募股)前夕... -
当前观察:vivo NEX/OPPO Find X刷屏...
采用升降前置摄像头的vivoNEX发布之后,20日凌晨,OPPO于法国巴黎卢... -
快报:七大升级!小米Max 3外形/参数公...
7月19日,小米新一代巨屏新机小米Max3将正式发布。在此之前,新机的... -
环球观速讯丨美国太空探索技术公司的载...
据美国有线电视新闻网报道,当地时间10月5日,美国太空探索技术公司... -
世界热头条丨智能网联汽车是新一轮科技...
近年来,人工智能、5G、大数据等新技术的发展,推动了自动驾驶与车... -
时讯:汽车制造行业驱动能源的换代产生...
目前,汽车制造行业不仅正进行着驱动能源的换代,也赶上了从人力驾... -
【环球快播报】车联网提升社会交通服务...
车联网即智能网联汽车,其概念引申自物联网,是以行驶中的车辆为信... -
当前信息:车辆网概念开始成为新能源车...
事实上,不论是在国内还是国外,对车联网行业来说,真正扑面而来的... -
超速拍照扣分吗?超速拍照扣分标准是什么?
超速拍照扣分吗?超速拍照扣分。超速拍照扣分标准:1、超速处罚超过...