用VS2010调试微软开放的部分源码
msdn上有一篇講解如何用vs2008調(diào)試源碼的文章:http://blogs.msdn.com/b/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx 今天在vs2010上試了下,發(fā)現(xiàn)其實(shí)也可以,關(guān)鍵設(shè)置二個(gè)地方:
然后換到Symbols
在Cache symbols in this directory這里選擇一個(gè)本機(jī)目錄(用于存放下載源代碼pdb文件)
ok,已經(jīng)成功一半了,為了更方便的一次性全部下載,你也可以到codeplex網(wǎng)站下載一個(gè)NetMassDownLoader的小工具,地址是?http://www.codeplex.com/NetMassDownloader/
該工具可以直接用命令行一次性下載所有微軟開(kāi)放的源代碼:
D:\software\NetMassDownloder>NetMassDownloader.exe -d D:\software\NetMassDownloder\src
這樣D:\software\NetMassDownloder\src目錄中將會(huì)下載到很多文件,如下圖:
然后隨便創(chuàng)建一個(gè)WinForm應(yīng)用,寫幾行代碼:
using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;namespace WindowsFormsApplication2 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){Text = "Debug me!";}private void button1_Click(object sender, EventArgs e){MessageBox.Show("Hello World!");}} }在Text="Debug me!"這里設(shè)置一個(gè)斷點(diǎn),運(yùn)行
在Call Stack窗口中,選擇System.Windows.Forms.dll,然后右擊,選擇Go To Source Code,然后就看到了傳說(shuō)中的Form.cs的源碼
不過(guò),微軟只開(kāi)放了一少部分代碼,其它沒(méi)有開(kāi)放的代碼,也可以利用Reflector工具來(lái)查看,比如象Array.Sort方法,網(wǎng)上都說(shuō)微軟內(nèi)部使用的是快遞排序算法,但是最好還是眼見(jiàn)為實(shí),打開(kāi)Reflector,定位到System,找到Array類,以及其中的Sort方法
點(diǎn)擊右側(cè)代碼中的Sort方法
OK,右側(cè)的代碼中,已經(jīng)能看到QuickSort這個(gè)方法了,繼續(xù)
總算得見(jiàn)真身了!
?
后記:這篇文章主要是給想“深究.net源代碼,但是又不知道如何下手”的朋友準(zhǔn)備的,另外mono項(xiàng)目(可簡(jiǎn)單理解為.net在非windows平臺(tái)上的實(shí)現(xiàn))其中也有不少源碼,其內(nèi)部實(shí)現(xiàn)也值得一看。
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/yjmyzz/archive/2010/12/23/1914510.html
總結(jié)
以上是生活随笔為你收集整理的用VS2010调试微软开放的部分源码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: DIV层跟随鼠标位置显示提示
- 下一篇: Jquery中使用setInterval