.net framework 源码调试 与 问题解决
2013-06-22 19:25
183 查看
调试方式有二种, 看官方资料就OK.
官方地址: http://referencesource.microsoft.com/serversetup.aspx
1. 使用配置在线地址安装
2. 下载安装包(http://referencesource.microsoft.com/netframework.aspx)
3.
故障排除(有问题可以看看).
本人使用时遇到的问题:
开发环境: Win7 64位, 本机只有Vs2010
问题1: 安要求配置后, 找不到源码, 要不就是显示反编译的一堆代码
问题原因: 所安装的源码的版本, 与本地的版本不匹配. (本来是安装360自动更新补丁或系统自带的系统更新, 会下载微软更新的.Net Framkwork 的补丁. ) (直接禁止用吧. 还是手动有选择的更新)
解决方法:
1. 查看已安装的更新, 从中卸载.Net framkwork的补丁. (这种方式不知道会不会有其他问题, 但问题可解决) (推荐)
2.
1) 在配置调试源代码下 运行程序(F5)(可以不用打断点).
按下CTRL+ALT+U 打开模块窗口. 以下举例, 要调试System.Web.dll, "符号文件列" 的地址就是源代码调试文件, 查看"版本列" 的版本号为4.0.30319.1
2) 使用只调试本机代码
F5 运行程序, 按下CTRL+ALT+U 打开模块窗口. 这里"符号文件列" 变空了. 查看"版本列" 这里是4.0.30319.1 built by:RTMRel
这里跟下载的源码的版本一样 , 就可以调试这个DLL了(只是该DLL, 其他可能不一样)
这里我是调整过的, 之前"版本列" 显示的与下载的源码是不一样的.
小版本号不一样(4.0.30319.****)***块不一样(如果是大版本号不一样, 就要看看本机设置的程序框架对不对或源码下载的版本不对).
而且后半部分为built by:RTMGDR(说明是有更新过补丁) , 而不是built by: RTMRel
例: "版本列" 为 4.0.30319.225
百度搜索: site:support.microsoft.com /kb system.web.dll 4.0.30319.225 (http://www.baidu.com/s?ie=utf-8&bs=site%3Asupport.microsoft.com+%2Fkb+system.web.dll+4.0.30319.272&f=8&rsv_bp=1&rsv_spt=3&wd=site%3Asupport.microsoft.com+%2Fkb+system.web.dll+4.0.30319.225&rsv_sug3=3&rsv_sug1=3&rsv_sug4=54&inputT=1840)
(居然是狗日的放在第一条记录....)
可以搜索出是什么补丁, 更新了该system.web.dll 这里是KB2468871补丁更新过system.web.dll文件.
(也可以找开该链接查看说明, 确认下该补丁是否有system.web.dll)
只找到这两个......大概就是了吧...又好像不是.....
然后去 查看已安装的更新, 找到KB2468871, 卸载. 再次F5程序->查看模板->该DLL版本列的版本号变了. 重复以上步骤. 直到把版本号变成一样(应该变成 built by:RTMRel )就可以了.
真没耐心一个个卸载, 我就直接把.Net Framework 下的所有补丁全删除了. 哈哈......(暂时问题....)
问题2: 双击堆栈的DLL, 不会直接跳转到源码, 会弹出选择源码, 默认的源码地址变f:\dd\ndp\fx……. 而不是我们设置的地址.
本机可运行配置
VS2010配置与VS2008(官方使用说明是2008的)有点不同.
多了一个启用.NET Framework源代码单步执行. 如下图配置就可以正常使用了.
符号. 这里我使用下载的包做为源, 也可以使用URL
VS2008: D:\RefSrc3.5\Symbols 一定要加Symbols, 调试文件在该目录下.
资料:
1. http://stackoverflow.com/questions/8139269/how-to-enable-enable-net-framework-source-stepping (我也是看了这个才解决的)
2. .NET Framework 版本列表: http://en.wikipedia.org/wiki/List_of_.NET_Framework_versions
官方地址: http://referencesource.microsoft.com/serversetup.aspx
1. 使用配置在线地址安装
2. 下载安装包(http://referencesource.microsoft.com/netframework.aspx)
3.
故障排除(有问题可以看看).
本人使用时遇到的问题:
开发环境: Win7 64位, 本机只有Vs2010
问题1: 安要求配置后, 找不到源码, 要不就是显示反编译的一堆代码
问题原因: 所安装的源码的版本, 与本地的版本不匹配. (本来是安装360自动更新补丁或系统自带的系统更新, 会下载微软更新的.Net Framkwork 的补丁. ) (直接禁止用吧. 还是手动有选择的更新)
解决方法:
1. 查看已安装的更新, 从中卸载.Net framkwork的补丁. (这种方式不知道会不会有其他问题, 但问题可解决) (推荐)
2.
1) 在配置调试源代码下 运行程序(F5)(可以不用打断点).
按下CTRL+ALT+U 打开模块窗口. 以下举例, 要调试System.Web.dll, "符号文件列" 的地址就是源代码调试文件, 查看"版本列" 的版本号为4.0.30319.1
2) 使用只调试本机代码
F5 运行程序, 按下CTRL+ALT+U 打开模块窗口. 这里"符号文件列" 变空了. 查看"版本列" 这里是4.0.30319.1 built by:RTMRel
这里跟下载的源码的版本一样 , 就可以调试这个DLL了(只是该DLL, 其他可能不一样)
这里我是调整过的, 之前"版本列" 显示的与下载的源码是不一样的.
小版本号不一样(4.0.30319.****)***块不一样(如果是大版本号不一样, 就要看看本机设置的程序框架对不对或源码下载的版本不对).
而且后半部分为built by:RTMGDR(说明是有更新过补丁) , 而不是built by: RTMRel
例: "版本列" 为 4.0.30319.225
百度搜索: site:support.microsoft.com /kb system.web.dll 4.0.30319.225 (http://www.baidu.com/s?ie=utf-8&bs=site%3Asupport.microsoft.com+%2Fkb+system.web.dll+4.0.30319.272&f=8&rsv_bp=1&rsv_spt=3&wd=site%3Asupport.microsoft.com+%2Fkb+system.web.dll+4.0.30319.225&rsv_sug3=3&rsv_sug1=3&rsv_sug4=54&inputT=1840)
(居然是狗日的放在第一条记录....)
可以搜索出是什么补丁, 更新了该system.web.dll 这里是KB2468871补丁更新过system.web.dll文件.
(也可以找开该链接查看说明, 确认下该补丁是否有system.web.dll)
只找到这两个......大概就是了吧...又好像不是.....
然后去 查看已安装的更新, 找到KB2468871, 卸载. 再次F5程序->查看模板->该DLL版本列的版本号变了. 重复以上步骤. 直到把版本号变成一样(应该变成 built by:RTMRel )就可以了.
真没耐心一个个卸载, 我就直接把.Net Framework 下的所有补丁全删除了. 哈哈......(暂时问题....)
问题2: 双击堆栈的DLL, 不会直接跳转到源码, 会弹出选择源码, 默认的源码地址变f:\dd\ndp\fx……. 而不是我们设置的地址.
本机可运行配置
VS2010配置与VS2008(官方使用说明是2008的)有点不同.
多了一个启用.NET Framework源代码单步执行. 如下图配置就可以正常使用了.
符号. 这里我使用下载的包做为源, 也可以使用URL
VS2008: D:\RefSrc3.5\Symbols 一定要加Symbols, 调试文件在该目录下.
资料:
1. http://stackoverflow.com/questions/8139269/how-to-enable-enable-net-framework-source-stepping (我也是看了这个才解决的)
2. .NET Framework 版本列表: http://en.wikipedia.org/wiki/List_of_.NET_Framework_versions
相关文章推荐
- MyEclipse中调试struts2源码的步骤以及部分问题的解决方法
- vs2013调试源码错位问题最新解决方法
- 解决为VS2008配置调试.NET框架源码的时候安装补丁KB944899(Visual Studio 2008 QFE)失败回滚的问题
- TLD(已测试)--VS2010下TLD算法源码调试详解,解决卡机问题
- osgearth调试源码无法打断点问题解决
- XPDF源码调试过程中字体问题的解决办法
- 解决eclipse无法断点调试JDK源码的问题
- 关于Visual Studio 2008来在本地调试.NET Framework源码,无法找到System.Windows.Forms.pdb的解决方法。
- maven项目debug调试不能够进入源码问题解决
- 解决调试JDK源码时,不能查看变量的值问题
- centos源码方式安装ipython2.7,setuptools、pip并解决ipython不能不能使用方向键的问题
- Xcode7 真机调试步骤以及遇到的问题解决办法
- liferay学习(源码调试问题)
- 源码编译安装PHP和Apache(解决php通过yum安装版本低的问题)
- 使用qsort对二维字符数组排序疑难问题调试及解决过程
- android真机调试 INSTALL_FAILED_MEDIA_UNAVAILABLE 问题解决方案
- 使用GDB调试PHP代码,解决PHP代码死循环问题
- VS2005(c#)项目调试问题解决方案集锦
- 记一次STM32中HardFault问题的调试解决(INVPC, LR 0xFFFFFFF5)
- Ubuntu10.04编译android2.2源码出错问题解决