VS2010在除錯時產生斷點錯位怎麼解決

2021-07-07 04:12:31 字數 979 閱讀 4952

總結:刪掉所有臨時檔案和輸出檔案,重編工程;不行再用ultraedit開啟出問題的檔案,另存為ansi編碼、換行回車選擇unix 0x0a方式後,檢查是否有亂碼或者換行不對,應該都能解決。

問題如下:

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,一切正常

vs2010斷點除錯技巧

如何設定條件斷點 設定條件斷點非常容易。在特定的行上,按f9設定斷點。然後右擊斷點 編輯視窗左側的紅點,在上下文選單上選擇 condition 記錄到達斷點次數 有時你希望,只有當第n次滿足條件的執行到達斷點時,才中斷程式執行。例如 當第五次返回少於10份晚餐的查詢結果時,中斷程式執行。可以通過右擊...

vs2010斷點除錯技巧(設定條件斷點)

乙個好的偵錯程式,能夠幫助程式設計師處理很多自動化的工作。試想下列的情形 1.錯誤是發生在乙個迴圈當中,只在迴圈遍歷了若干次以後,才會出現。2.錯誤只在程式中某個變數為乙個特定的值,才會出現,而這個變數的值是在程式執行的過程中隨機設定的。3.多個執行緒都要呼叫同乙個函式,而你只想在某幾個執行緒執行這...

VS2010遠端除錯

一 應用場景 bug在本機環境下不可再現,但在另外一台遠端機器上可以再現。二 準備 1.假設本機名為a機,遠端機名為b機 2.在b機上安裝vs2010,同時在目錄 microsoft visual studio10.0 common7 ide remote debugger x86 注 為vs的安裝...