調試.netframework源碼

來源:互聯網
上載者:User
基本步驟
注意,這個功能在Visual Studio 2008 Express版裡不支援。
1)安裝Visual Studio 2008 QFE。這個QFE只是更新一個Visual Studio調試器的DLL,以便可以擷取原始碼,
更多細節參加下載頁面。
2)運行Visual Studio 2008依次展開Tools->Options->Debugging->General。如果你在Visual Basic Profile環境下
運行,你需要將lower left of the Options Dialog標記為"Show All Settings",然後繼續(其它配置沒有這個選項).
設定以下兩個設定:
關閉"Enable Just My Code"設定
開啟"Enable Source Server Support"設定

你的設定會如下面所示:

3)下一步,選擇"Symbols"頁,然後設定符號下載URL和緩衝位置。設定以下三個配置:
設定符號檔案位置為:http://referencesource.microsoft.com/symbols
設定緩衝位置。保證你的賬戶能讀寫這個位置。一個好建議是將這個路徑設定為
開啟"Search the above locations only when symbols are loaded manually"選項
設定完畢後,應該如所示(注意,這裡我陳璐建議是不勾選第一個,勾選第2個,如果不這樣很多源碼進不去的!注意觀察“調試堆棧”,可以掌握程式的一步步的入口)

設定完畢。
調試進入架構的原始碼
通過這個例子,我們從一個空的C# Windows Application project開始,同樣它可以在VB,Web或WPF工程上工作。建立這個工程:
在Form_Load上設定個斷點:

運行你的工程命中斷點,到呼叫堆疊視窗(CTRL+ALT+C).在呼叫堆疊裡,按右鍵System.Windows.Forms.dll,然後
選擇"Load Symbols"。這樣會給System.Windows.Forms程式集載入符號,大小大概10M,所以下載速度就看看你的網路連接速度怎麼樣了。注意:在這個過程中Visual Studio會沒有任何響應的。但是,這個下載對每個程式集來說只需要一次
。這個符號(PDB)檔案會緩衝在你的機器上,在你剛才定義的檔案夾裡。

這樣就會從伺服器上下載這個DLL的符號了,你可以在狀態列裡看到一些資訊反映這個。注意:這個完成後調用幀字型會變成
黑色,並且行號也可用了。注意:在每次偵錯工作階段中你都需要按右鍵然後選擇"Load Symbols"(但是,第二次的時候,這個符號已經緩衝在本地了,所以無需再下載它們)。要瞭解更多資訊請欣賞下面的進階用篇。

你已經下載了Windows Forms DLL的符號,現在可以查看代碼了。你可以Step In上面的的程式碼,也可以在呼叫堆疊
裡雙擊某一幀。在這裡我們Step In(F11).
在第一次進入代碼的時候,我們會顯示EULA。花點時間閱讀EULA,如果你同意點擊ACCEPT,然後這個原始碼就會下載下來。
就這樣,你可以調試.net架構原始碼了。

現在,對每個你想調試的程式集,只要重複上面的步驟就可以了(注意:你只會看到一次EULA,不是每次都會看到的).
有的時候,你要調試的程式集並不在呼叫堆疊上,比如下面這個例子:

在你調試進入Graphics.DrawRectangle,你需要載入System.Drawing.dll的符號。開啟Modules Window(CTRL+ALT+U)。這個列表會顯示調試中所有載入的模組(DLLs).在列表中找到System.Drawing.DLL,按右鍵,然後選擇Load Symbols.

注意:一旦符號檔案下載了,符號檔案會顯示在"Symbol File"列中。
你現在可以使用F11進入Graphics.DrawRectangle的代碼了。在這個case中,你會先進入PaintEventArgs.Graphics屬性的代碼。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.