內存對齊引起的bug

       耗費一整天的時間,最後是#pragma pack(push,1),少寫了push,導致運行時報段錯誤,同時由於對齊錯誤,導致程序很早亂了,在我用gdb調試時,在堆棧提示的錯誤的地方打斷點,單步調試卻進入了時間函數,這讓我很困惑,上網搜無果。我只能另闢蹊徑,通過把自己寫的代碼少部分的編譯執行,縮小代碼可能出錯的範圍,可把我累壞了,這次可真是記憶尤深。

      不過也學到了,不能僅僅通過代碼調試來定位問題,要利用一切可能的信息,多嘗試各種途徑,提高分析定位問題的能力。代碼的添加要少量多次,這樣每次出錯誤的時候,就好檢查多了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章