總結:刪掉所有臨時檔案和輸出檔案,重編工程;不行再用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的安裝...