配置Visual Studio 以调试.net framework的源代码

看到.net框架代码发布了,兴奋了一下,把在Visual Studio 2008上配置的内容翻译了一下,只翻译了原文的基本步骤,高级用户篇和QA没有翻译。要欣赏原文请点击这里

基本步骤
注意,这个功能在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"选项
设置完毕后,应该如下图所示

设置完毕。
调试进入框架的源代码
通过这个例子,我们从一个空的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属性的代码。

posted @ 2008-01-17 10:33 横刀天笑 阅读(5068) 评论(37)  编辑 收藏 所属分类: 翻 译

  回复  引用  查看    
#1楼 2008-01-17 10:38 | TerryLee      
很好很快!
  回复  引用  查看    
#2楼 [楼主]2008-01-17 10:43 | 横刀天笑      
@TerryLee 呵呵,再快也没有老大你快啊,刚在老外博客上看到,我心想,博客园怎么还没有动静了,一刷新就看到你的大作了
  回复  引用  查看    
#3楼 2008-01-17 10:43 | 怪怪      
很黄很暴力! :P
  回复  引用    
#4楼 2008-01-17 10:49 | SevenMai [未注册用户]
很好,很强大!
  回复  引用  查看    
#5楼 2008-01-17 10:54 | deerchao      
很拽很拉风!
  回复  引用    
#6楼 2008-01-17 11:40 | zheng [未注册用户]
好象没下Visual Studio 2008 QFE,怎么有一次也把源文件打开了,吓了一跳..
  回复  引用  查看    
#7楼 2008-01-17 11:47 | 破曉之陽      
很色,很好看!
  回复  引用  查看    
#8楼 2008-01-17 11:49 | 红马天下      
好快!
很好很和谐!
  回复  引用    
#9楼 2008-01-17 12:22 | ucetgg [未注册用户]
更高更强更快!
  回复  引用    
#10楼 2008-01-17 12:23 | ^_^ [未注册用户]
关闭VS后,本地的源文件被删掉了,下次打开有得重新下载???
  回复  引用  查看    
#11楼 [楼主]2008-01-17 12:52 | 横刀天笑      
@^_^ 我发现也是这样子的,缓存只保留了符号,源代码删除了
  回复  引用  查看    
#12楼 2008-01-17 13:07 | 代码乱了      
好狠好精确
  回复  引用  查看    
#13楼 2008-01-17 13:13 | 老夫子系      
很不错, 哈哈!
  回复  引用  查看    
#14楼 2008-01-17 13:22 | Rick Meta      
好东西
  回复  引用  查看    
#15楼 2008-01-17 13:23 | 一步      
这位大哥能告诉各下载vs2005和vs2008的下载地址码 谢谢了
  回复  引用  查看    
#16楼 2008-01-17 13:55 | Anders Cui      
限制级
  回复  引用  查看    
#17楼 2008-01-17 14:07 | ※ABeen※      
速度一般 功能很好 谢谢!
  回复  引用  查看    
#18楼 2008-01-17 14:09 | jun      
把"Search the above locations only when symbols are loaded manually"选项关闭,把下面的"Load symbols using the updated settings when this dialog is closed"选上,再次打开VS2008的进行调试的时候,就不用再下载symbol了.

--引用--------------------------------------------------
^_^: 关闭VS后,本地的源文件被删掉了,下次打开有得重新下载???
--------------------------------------------------------

  回复  引用  查看    
#19楼 [楼主]2008-01-17 14:28 | 横刀天笑      
@jun 默认情况下Visual Studio 2008会在每次调试会话时自动下载所有调试进程加载的程序集符号,但是有些符号我们根本用不到,所以就用“Search the above locations only when symbols are loaded manually”,选项了,不管哪种设置符号文件都是只需要下载一次,以后就从本地缓存加载了,但是代码文件好像并不如此。
  回复  引用  查看    
#20楼 2008-01-17 15:20 | xrainfir      
我试验了一下 每次都要重新下载代码... 晕倒了
  回复  引用  查看    
#21楼 2008-01-17 16:15 | 李华星      
不久将上演一部.NET核心攻击战, 肯定会很热闹了,哈哈
  回复  引用  查看    
#22楼 2008-01-17 16:48 | Zhuang miao      
开始研究研究
  回复  引用  查看    
#23楼 2008-01-17 17:51 | flyingchen      
QFE安装发生错误。晕
  回复  引用  查看    
#24楼 2008-01-17 17:54 | micYng      
我为什么不能下载??
load symbols点了之后,弹一个open对话框出来,就不动了...
  回复  引用  查看    
#25楼 2008-01-17 19:31 | Justin      
lz活雷锋
  回复  引用    
#26楼 2008-01-17 22:00 | myshell [未注册用户]
下了,但非常慢
  回复  引用  查看    
#27楼 2008-01-17 22:54 | BirdsHover      
好文
  回复  引用  查看    
#28楼 2008-01-18 12:27 | 要有好的心情      
我设置时,symbols文件就都下来了,源文件可以做个小的目录监控程序,同步到其他路径。不过有reflector,保存源文件没有意义

  回复  引用  查看    
#29楼 2008-01-18 16:26 | leegool      
相当利落啊.
  回复  引用  查看    
#30楼 2008-01-19 17:23 | scotoma      
下载的还是超级的慢的啊.很难受....
  回复  引用    
#31楼 2008-01-19 20:47 | zzmsl [未注册用户]
.NET源码的下载地址是什么哦。
  回复  引用  查看    
#32楼 [楼主]2008-01-21 17:19 | 横刀天笑      
@flyingchen 什么错误?原英文上有一些QA你看看,看有没有帮助。
@micYng 等待。。。。看你的网速了
@李华星 呵呵
@Justin 向你学习啊
@要有好的心情 好办法
@zzmsl 现在好像还没有吧
@scotoma 可能下的人太多了吧。。呵呵
  回复  引用  查看    
#33楼 2008-05-03 00:10 | 留恋星空      
不错喔
  回复  引用  查看    
#34楼 2008-07-24 09:11 | hbf      
确实不错
  回复  引用  查看    
#35楼 2008-08-11 09:41 | LanYo      
我的为什么一步一步设置也没有楼主所说的那样?