VS2008 调试.
NET Framework 源码基本步骤
2008-08-22 Cbsi 中国PChome.net 类型: 转载 责编: 江海明
首先,这个功能在 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"设置 你的设置会如下面所示:
图1
3)下一步,选择"Symbols"页,然后设置符号下载 URL 和缓存位置.设置以下 三个配置: ◆设置符号文件位置为:referencesource.microsoft/symbols ◆设置缓存位置.保证你的账户能读写这个位置. ◆打开"Search the above locations only when symbols are loaded manually" 选项. 设置完毕后,应该如下图所示:
图2
设置完毕. 调试进入框架的源代码. 通过这个例子,我们从一个空的 C# Windows Application project 开始,同样 它可以在
VB,Web 或 WPF 工程上
工作.创建这个工程: 在 Form_Load 上设置个断点:
图3
运行你的工程命中断点, 到调用堆栈窗口(CTRL+ALT+C).在调用堆栈里, 右键单 击 System.Windows.Forms.dll,然后选择"Load Symbols".这样会给 System.Windows.Forms 程序集加载符号,大小大概 10M,所以下载速度就看看你的
网络连接速度怎么样了.注意:在这个过程中 Visual Studio 会没有任何响应的. 但是,这个下载对每个程序集来说只需要一次.这个符号(PDB)文件会缓存在你的机 器上,在你刚才定义的文件夹里.
图4
这样就会从服务器上下载这个 DLL 的符号了,你可以在状态栏里看到一些信息 反映这个.注意:这个完成后调用帧字体会变成黑色,并且行号也可用了.注意: 在每次调试会话中你都需要右键单击然后选择"Load Symbols"(但是,第二次的时 候,这个符号已经缓存在本地了,所以无需再下载它们).要了解更多信息请欣赏下 面的高级用篇.
图5
你已经下载了 Windows Forms DLL 的符号,现在可以查看代码了.你可以 Step In 上面的的代码行,也可以在调用堆栈里双击某一帧.在这里我们 Step In(F11). 在第一次进入代码的时候,我们会显示 EULA.花点时间阅读 EULA,如果你同意 点击 ACCEPT,然后这个
源代码就会下载下来. 就这样,你可以调试.net 框架源代码了.
图6
现在,对每个你想调试的
程序集,只要重复上面的步骤就可以了(注意:你只会 看到一次 EULA,不是每次都会看到的). 有的时候,你要调试的程序集并不在调用堆栈上,比如下面这个例子:
图7
在你调试进入 Graphics.DrawRectangle,你需要加载 System.Drawing.dll 的 符号.打开
Modules Window(CTRL+ALT+U).这个列表会显示调试中所有加载的模块 (DLLs).在
列表中找到 System.Drawing.DLL,右键单击,然后选择 Load Symbols.
图8
注意:一旦符号文件下载了,符号文件会显示在"Symbol File"列中. 你现在可以使用 F11 进入 Graphics.DrawRectangle 的代码了. 在这个 case 中, 你会先进入 PaintEventArgs.Graphics 属性的代码.