1. 程式人生 > >VS 2005 VS2008 VS2010 設定斷點,在除錯時產生斷點錯位怎麼解決

VS 2005 VS2008 VS2010 設定斷點,在除錯時產生斷點錯位怎麼解決

問題如下:

1.錯誤程式碼報錯行數錯位
2.debug動態跟蹤錯位
3.Release跟蹤錯位
4.斷點設定自動被跳轉

可能的原因有三種:

第一:

程式碼和dll或者exe不一致;

第二:

陣列等越界導致記憶體亂了;

第三:

0D0A 改為了0D少了0A或者中文註釋打亂了VS對0D0A的定位

方法一:

最方便的方法是靜態編譯看看是不是第三個原因,

首先VS的option裡面把line number勾選出來,這樣可以看到每行程式碼的行數,在斷點錯位的那行程式碼裡面人為的新增幾個語法錯誤,

然後編譯,看看報錯的程式碼行數是不是已經錯位了,如果已經錯位了,就是第三種情況,可以拿UE或者直接把中文註釋全部刪掉,

慢慢排檢視看哪行換行符出了問題,簡便辦法是在隨機的程式碼行裡面人為新增語法錯誤,來逐步定位哪裡幾行的問題。

方法二:

1.挨個設斷點,終於找到了首錯位地址,呵呵,進步.
2.偶懷疑是註釋造成的問題,去掉全部的註釋,再DEBUG,靠,還錯位...
3.把開始出問題的程式碼全部都註釋吧...靠,還錯位...
4.這是什麼問題,快瘋掉了...
5.把出問題的程式碼全部刪除,咦,正常了..
6.看來問題就出在被刪除的程式碼上,不過看起來,程式碼一切正常啊,怎麼會出問題呢?
7.拿出UE來,看看程式碼中是否有非法字元(用十六進位制的方式看)
8.問題被看出來了,一般的程式碼與程式碼之間的換行是 0x0d 0x0a, 而這段程式碼中卻有幾行程式碼是 0x0d 沒有0x0a...
   到現在,我還沒試出來怎樣的情況下沒有0x0a
9.去掉0x0d,重新在IDE中"回車"
10.再Debug,一切正常