久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

關(guān)于局部變量導(dǎo)致堆棧越界的檢查

作者:胡云章   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年12月10日   【字體:

一般來說因?yàn)榫植孔兞繉?dǎo)致堆棧越界的問題比較難查,因?yàn)間db保存的也不是第一現(xiàn)場(chǎng)。

以我的經(jīng)驗(yàn)來說,首先應(yīng)該初步估計(jì)出問題的流程,然后在該流程中大量加入打印,通過
打印信息縮小排查范圍,然后結(jié)合代碼走讀查找BUG。

閱讀代碼時(shí)重點(diǎn)注意,局部變量中的數(shù)組大小,以及memset,memcpy類的系統(tǒng)調(diào)用,還有就是循環(huán)賦值語句。

如果問題無法復(fù)現(xiàn)的話,就要碰運(yùn)氣了。
假設(shè)局部變量寫越界不嚴(yán)重的話,可以手動(dòng)推導(dǎo)一部分堆棧中的函數(shù)調(diào)用關(guān)系,要求對(duì)C語言的壓棧過程比較熟悉。

大致上的做法是:
出現(xiàn)SEGV時(shí),查看寄存器esp的值,在根據(jù)esp的值打印出堆棧的信息,如果這部分?jǐn)?shù)據(jù)不是全零的話,說明堆棧被寫越界的太多;否則的話,還是放棄吧。

另一方面要用nm命令把調(diào)試目標(biāo)的符號(hào)表取出,最好按地址排序。

接下來,就是手動(dòng)對(duì)比堆棧中的現(xiàn)場(chǎng)和符號(hào)表了

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 亚洲精品久久久久avwww潮水 | 亚洲国产网址 | 成人国产精品久久 | 女朋友的闺蜜3韩国三级 | 午夜在线视频 | 精品一级 | 日本久久一区二区三区 | 欧美炮房 | av中文字幕在线播放 | 成年人视频在线免费观看 | 99精品免费 | 欧美一区二区三区视频 | 婷婷激情在线 | 精品国产一区二区三区免费 | 亚洲狠狠 | 黄色国产在线播放 | 欧美视频一级 | 国产精品久久久久久久久久 | 久久新视频 | 99精品免费久久久久久日本 | 超碰在线影院 | 久久r精品 | 伊人看片 | 免费一区在线 | 亚洲黄色网址视频 | 人人99| 成人中文字幕av | 亚洲一区二区三区乱码aⅴ 四虎在线视频 | 国产亚洲一区精品 | 精品国产一区二区三区在线观看 | 免费毛片网站在线观看 | 武道仙尊动漫在线观看 | 一级毛片免费 | 911网站大全在线观看 | 毛片免费观看 | 午夜不卡福利视频 | 蜜桃视频成人 | www.99久久.com| 中文字幕不卡在线观看 | 中文字幕av中文字幕 | av一级毛片 |