天天看點

VS2008調試技巧——斷點失效

在調試的時候,往往發現某一行代碼寫錯了,想修改後,繼續調試。但是有時修改代碼後會出現這樣彈出框"此源檔案已更改,不再與以下版本檔案比對,該版本檔案用于生成所調試的應用程式"。如果點确定代碼調試還需要重新開始。這樣極大的影響了調試的效果和效率。如下圖的彈出框。

VS2008調試技巧——斷點失效

碰到這樣的情況,需要修改Visual Studio的設定。

菜單 "調試/選項和設定"中彈出如下框。去掉"調試/正常/要求源檔案與原始版本完全比對"的鈎鈎。

VS2008調試技巧——斷點失效
原因:

一、斷點失效的問題描述。      
工具欄将生成模式設定為Debug,在某行代碼(證明為有效)上添加了斷點,開始調試。程式一起動,斷點就失效了。具體表現:辨別斷點行首的實心圓點轉變為空心圓圈。      

二、原因分析與解決方案。

1.如果項目中的兩個或更多的源檔案具有同一名稱,調試器在确定斷點設定在哪個檔案時可能會有問題。當建立的子產品與連結到的“調試”庫的某一元件具有相同名稱時,經常會發生這種情況。

解決方法:若要解決此問題,請輸入源檔案的完整路徑名。您可以在“檔案斷點”對話框中更改檔案路徑名。 

2.在其他情況下,盡管對應于斷點的源檔案存在,但是調試器可能無法找到該源檔案。如果源檔案已更改并且源代碼與調試的代碼不再比對,則将出現此情況。如果希望 Visual Studio 顯示與調試的版本不比對的源代碼,請清除在“選項”對話框中的“調試”類别下的“正常”節點中的“僅使用與原始版本完全比對的源代碼”選項。還可以通過選中“檔案斷點”對話框中的“允許源代碼與原始版本不同”來綁定斷點。也就是說,如果在之前的Debug模式運作過程中,修改了代碼,将會導緻運作的代碼檔案和原始檔案版本不一緻,在這種情況下,也有可能出現上述情形。      

解決方法:通過菜單指令{工具}-->{選項}-->{調試}-->選中{要求源檔案與原始版本完全比對}。

3.運作模式與生成模式不一緻。尤其是當生成模式被設定為Release,而以Debug模式運作時,将會出現該問題。并且由于Debug模式運作所依據的可執行檔案,并沒有因為本次生成操作而更新,也就是沒有反應程式設計者最新的修改的影響,常常會使得程式表現異常,感覺“代碼修改後不起作用”。

解決方法:檢查工具欄内的運作模式,和生成菜單中的“生成配置”以及“批生成”中的設定是否協調。