上次我們提到,沒有源代碼而且沒有調(diào)試符號,我們也可以 Debug。有人可能會問,我什么時候需要在這種情況下調(diào)試嗎?!
是的。比方說,我們用了某些第三方的組件,這些組件里面難免也會有 Bug。就算是微軟發(fā)布的 .net 組件,我們在某些個別的例子中發(fā)現(xiàn)了 Bug。就算這些人家的組件都沒有問題,有時候我們也不得不在程序運行到組件中的某些語句時候查看一些數(shù)據(jù)。
舉個栗子:我們的程序用了某個組件A。當(dāng)用戶鼠標(biāo)單擊A的一個窗口的時候,A的某個方法應(yīng)該回掉我們的一個方法。可是它竟然沒有(我們在自己的方法上加了斷點,沒有被擊中)!如果我們在這個時候能夠給組件中點擊事件的處理函數(shù)加上斷點,我們就可以探一探究竟了。
下面我們就從易到難來看看如何調(diào)試別人家的組件。
我們先來看如何調(diào)試 .NET Framework 的組件。
1. 我們對 VS 的 Options -> Debugging -> General 做一些配置,如下圖:
Screenshot of options window
2. 我們要緩存 .NET 的調(diào)試符號, 到 Options -> Debugging -> Symbols, 設(shè)置 Cache symbols in this directory 到一個本地的路徑。
配置完成,我們來做個實驗。我們知道每個 WPF 的窗口的構(gòu)造函數(shù)內(nèi)都會調(diào)用一個 InitializeComponent() 方法。我們今天想看看這個方法它到底干了什么?;谝陨蟽牲c配置,我們新建一個 WPF 程序,然后給這個方法設(shè)斷點,當(dāng)程序運行到該語句時,我們點擊F11,哈,我們就進入了微軟的代碼,請看:

網(wǎng)友評論