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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

關于局部變量導致堆棧越界的檢查

作者:胡云章   來源:本站原創   點擊數:  更新時間:2013年12月10日   【字體:

一般來說因為局部變量導致堆棧越界的問題比較難查,因為gdb保存的也不是第一現場。

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

閱讀代碼時重點注意,局部變量中的數組大小,以及memset,memcpy類的系統調用,還有就是循環賦值語句。

如果問題無法復現的話,就要碰運氣了。
假設局部變量寫越界不嚴重的話,可以手動推導一部分堆棧中的函數調用關系,要求對C語言的壓棧過程比較熟悉。

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

另一方面要用nm命令把調試目標的符號表取出,最好按地址排序。

接下來,就是手動對比堆棧中的現場和符號表了

關閉窗口

相關文章

主站蜘蛛池模板: 欧美久久久久久 | 热久色 | 久久91精品国产一区二区三区 | 逼逼网 | 亚洲精品久久久一区二区三区 | 精品国产乱码一区二区三 | 91成人在线 | 久久精品这里 | 亭亭五月激情 | 黄色福利 | 国产日韩欧美中文 | 中文字幕蜜臀 | 日韩精品视频在线免费观看 | 男人的天堂中文字幕 | 久久精品国产免费看久久精品 | 国产精品久久久久久久久 | 中文福利视频 | 国产区精品 | 国产不卡一区 | 免费视频一区 | 亚洲一区国产 | 国产欧美精品区一区二区三区 | 欧美久久一区二区三区 | www.99re | 97免费在线观看视频 | 国产精品一区二区不卡 | 久久av一区 | 色伊人久久 | 欧美成人激情 | 久久久久久久久久久久久久av | 日韩日韩日韩日韩日韩日韩日韩 | av在线伊人 | 亚洲精品久久区二区三区蜜桃臀 | 蜜桃久久 | 看片91| 欧美日韩国产一区二区三区 | 免费色网址 | 新91视频网 | 午夜电影一区二区 | 国产精品久久av | 成人精品视频免费 |