在Visual Studio
中可以通過調試進入
NET Framework的源代碼
從這個意義上說
NET Framework是開放部分源代碼了
但現在只支持調試模式下進入源代碼
而其
這個功能在Visual Studio
Express版本中不能支持
注意
所有的源代碼都是從指定的遠程服務器上按需下載的
而不是VS
安裝後就自帶的
要想使用這個功能
需要額外的配置一下
因為默認配置中VS
是不開啟這個功能的
那麼如何配置呢?在Scott的Blog中有專門的說明
但是他的源代碼服務器URL給錯了
收聽了一下他們的采訪視頻
確定了正確配置的方式
如下
在VS
中
菜單Tools
>Options後
(
)如果你在VB Profile環境下運行
需要將左下角的Show All Settings勾選上(否則將不會出現Debugging選項)
然後選擇Debugging
>General
(
)如果你不是在VB Profile下
則直接選擇Debugging
>General
(
)去掉
Enable Just My Code
的勾選
代表不僅僅只是調試我們自己開發的代碼(言外之意也要調試
NET Framework的源代碼)
(
)打開
Enable Source Server Support
勾選
代表開啟源代碼服務器的支持(言外之意在需要的時候去源碼服務器獲取
NET Framwork的源代碼(
)選擇
Debugging
>Symbols
頁
然後設置符號下載URL和緩存位置
設置為
(
)設置符號的本地緩存位置
如
C
\temp\symbols
注意確保你的Windows賬戶能讀寫這個位置
(
)打開
Search the above locations only when symbols are loaded manually
選項
表明只有當symbols被手動加載得情況下才使用
在這種模式下
第一次進入需要進入
NET Framework中的某一個dll時
需要手動執行Load Symbols操作(注
每個dll只有一次
之後它就被緩存到(
)所設置的本地緩存中了)
如果嫌麻煩
這裡也提供了一個簡單的方法
即勾選
Load symbols using the updated setting when this dialog is closed
表明當這個設置窗口關閉的時候
立即下載所有的symbols(這將需要幾分鐘~幾十分鐘
根據網速決定)
這樣就不用以後再手動Load symbols操作了
通過以上的設置後
在調試程序的時候就可以進入框架的源代碼了
通過例子看一下
創建這個工程
並設置個斷點
運行程序到斷點停止時
到調用堆棧窗口(CTRL+ALT+C)右鍵單擊一個dll(如
System
Windows
Forms
dll)
然後選擇
Load Symbols
這樣會給System
Windows
Forms程序集加載符號
注意
如果在配置過程中采用了當時一次性下載了所有的symbols的話
這裡的Load Symbols可以省略不做
現在可以查看代碼了
你可以Step In(F
)上面的的代碼行
在第一次進入代碼的時候
我們會顯示EULA
點擊ACCEPT
然後這個源代碼就會下載下來
可以調試
net框架源代碼了
通過這種方式查看的源代碼並非全部
這次發布的版本中包含的命名空間有
◆System
◆System
CodeDom
◆System
Collections
◆System
ComponentModel
◆System
Data
◆System
Diagnostics
◆System
Drawing
◆System
Globalization
◆System
IO
◆System
Net
◆System
Reflection
◆System
Runtime
◆System
Security
◆System
Text
◆System
Threading
◆System
Web
◆System
Web
Extensions
◆System
Windows
◆System
Windows
Forms
◆System
Xml
錯誤修正
以中斷模式或運行模式顯示
調用堆棧
窗口
在
調試
菜單中選擇
窗口
然後單擊
調用堆棧
或者Ctrl+D
C
From:http://tw.wingwit.com/Article/program/net/201311/12326.html