我有一些代碼在MS VC++ 6.0,我正在調試。出於某種原因,在這個我試圖刪除一些動態分配的內存的地方,它會中斷,並且我會彈出一個消息框,提示「用戶斷點在代碼中被調用,然後反彙編窗口彈出,I看到用戶斷點
*memory address* int 3
奇怪的是,沒有什麼地方在我打電話像這樣的彙編指令代碼(我認爲ASM INT 3是用於x86硬件中斷命令?)..
什麼可能造成這種情況?
編輯:回答:我的代碼是「行走結束」的數組,但只有在標記爲Visual Studio的位置調試0xFDFDFDFD,這被稱爲NoMan'sLand圍欄..我認爲它也被稱爲Off-by-one錯誤..這個數組與我在發生錯誤時釋放內存的點無關。這使得它很難被發現.. :(
只是好奇 - 你是否通過單步執行彙編指令來找到這個調試堆不喜歡或做了一些其他工具/技術幫助? – 2008-12-22 19:24:41
我看了一下這個網站http://www.highprogrammer.com/alan/windev/visualstudio.html,它說:0xFDFDFDFD是一個內存值,MSVC++調試器用來指示數組中的邊界來檢測off-by-一個錯誤..我檢查了我的指針,並單步穿過迭代.. .. – krebstar 2008-12-22 23:11:57
源代碼,發現我沒有正確限定我的一個陣列..所以我想這只是我需要正確檢查我的指針的情況:) – krebstar 2008-12-22 23:12:37