VS2010调试.net framework源码
来源:互联网 发布:mac book air后悔 编辑:程序博客网 时间:2024/05/19 10:37
原文地址:http://blog.csdn.net/waxgourd0/article/details/6600182
在有了一段经历之后,我开始不满足与仅仅是写一些应用代码,非常想知道.net framework的源码是如何写的?我们在追踪bug的时候也往往需要追踪到.net framework的源码中去,微软将.NET的源码部分开源后我们终于有了这个机会,我的编译环境是VS 2010RC,记录一下如何单步调试到.NET的源码中,怕自己忘记,同时也分享给大家。
1、工具- 选型 – 调试 - 常规,按照下图修改我框起来的地方:
2、工具- 选项 – 调试 - 符号,按照下图进行配置:
这里注意你只需要在位置里添加http://referencesource.microsoft.com/symbols这一项即可,后面是在编译过程中自己产生的,然后将符号缓存路径改为你希望放置的地方,在这里我的路径是D:\development\NetMassDownloader\src(我使用NetMassDonloader没有成功,总是搜索到可供下载的PDB文件为0,我使用的NetMassDownloader的版本为1.6.0.0,按照发布说明已经支持VS 10.0了,如果有谁知道怎么解决请告诉我一下),注意对此路径一定要有读写权限,最后勾选“除排除模块之外的所有模块”。
然后新建一个WPF的工程,我只是在界面上加了一个按钮,简单实现了一个按钮事件:
- private void button1_Click(object sender, RoutedEventArgs e)
- {
- MessageBox.Show("hello word");
- }
在MessageBox.Show("hello word")上设置断点,运行之后在调用堆栈上就可以观察到调用过程:
右键点击非灰色的可以发现可以查看源代码:
F11单步执行的时候可以发现以前不能查看的代码这时也可以跟深层地追踪源代码:
灰色部分右键点击之后发现”转到源代码“不可用,这时在加载符号中选择如图所示,就可以查看源代码,期间会有下载相应PDB的过程:
至于加载信息显示如下:
如上图所示我在编译以前别的VS平台编译过的工程(经过转换)无法使用转到源代码,加载信息同样如上所示,我当时以为是前两项没有找到PDB的缘故。当我新建一个工程编译一次后,除了新建的这个工程可以使用转到源代码,原本以前平台编译过原本不能使用“转到源代码”功能的工程也同样可以使用此功能了,看来上面的加载信息与能否使用调试源码没有必然联系,在这里希望达人解答一下上面的含义。
最后MS并没有将全部的源代码都开源,所以有时在使用时会有“没有可用的资源”的提示,这时如果还要查看源码的话可以按照堆栈的层次用Reflector直接查看源码。
- VS2010调试.net framework源码
- VS2010下调试.NET源码
- .Net Framework源码调试详细步骤
- Visual Studio 2008调试.NET Framework源码基本步骤
- entity framework源码调试
- .NET Framework 源码
- VS2010调试Framework源代码的大门
- 应用程序Framework源码级别调试
- VS2010和.net Framework 4.0 下载
- 配置Visual Studio 2008来调试.NET Framework源码的基本步骤
- 2010-07-09 12:03 全面解读.Net Framework源码调试详细步骤
- VS2010 C++下编译调试MongoDB源码
- VS2010 C++下编译调试MongoDB源码
- VS2010 C++下编译调试MongoDB源码
- VS2010 C++下编译调试MongoDB源码
- VS2010 C++下编译调试MongoDB源码
- Win7+VS2010:mysql 源码编译与调试
- VS2010 C++下编译调试MongoDB源码
- 学习笔记之 jsp基础 与 El表达式
- 学习使用easy-ui中combotree插件文档
- CreateFile函数详解
- Debugging the kernel using Ftrace - part 2
- Linux下一个简单线程池实现的源码注释
- VS2010调试.net framework源码
- 文档视图程序设计
- 获取系统 SID
- 一篇非常好的linux学习笔记分享(Linux入门绝佳)
- win7下iis的安装和配置
- 读书笔记-《一万个小时定理》
- 使用AndBug调试Android Java Bytecode
- JacORB配置和ant配置
- 大数减法