我有一個程序會產生一個帶有testcase的致命錯誤,我可以通過讀取致命的日誌和堆棧跟蹤來找到問題 - 事實證明有一個讀操作在空指針上。使用gdb運行時,致命錯誤消失
但是,當我嘗試將gdb附加到它並設置圍繞可疑代碼的斷點時,空指針就不能被觀察到!該程序運行平穩,沒有任何錯誤。
這是一個單進程的單線程程序,我之前沒有遇到過這種事情。任何人都可以給我一些意見嗎?謝謝。
附加說明:我還嘗試在致命觸發器代碼之前調用pause()系統調用,並期望在致命點之前使程序休眠,然後在其上附加gdb,可悲的是,沒有發生致命錯誤。
用'valgrind' /'memcheck'嘗試調試? –
ahh,海森堡的不確定性原理,適用於編程 –
臭名昭着的[heisenbug](http://en.wikipedia.org/wiki/Unusual_software_bug#Heisenbug) –