配置Visual Studio 2008来调试.NET Framework源码的基本步骤

简介: 首先,这个功能在Visual Studio 2008 Express版里不支持。 1)安装Visual Studio 2008 QFE。这个QFE只是更新一个Visual Studio调试器的DLL,以便可以获取源代码,更多细节参加下载页面。
首先,这个功能在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属性的代码。

目录
相关文章
|
2月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
246 3
|
2月前
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
52 1
|
19天前
|
开发框架 .NET 程序员
驾驭Autofac,ASP.NET WebApi实现依赖注入详细步骤总结
Autofac 是一个轻量级的依赖注入框架,专门为 .NET 应用程序量身定做,它就像是你代码中的 "魔法师",用它来管理对象的生命周期,让你的代码更加模块化、易于测试和维护
驾驭Autofac,ASP.NET WebApi实现依赖注入详细步骤总结
|
1月前
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤
随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍了如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤。通过这些工具,可以显著提升编码效率和代码质量。
445 4
|
2月前
|
开发框架 缓存 监控
NET Framework 到 .NET 5/6 的迁移是重大的升级
本文详细介绍了从 .NET Framework 4.8 迁移到 .NET 5/6 的过程,通过具体案例分析了迁移策略与最佳实践,包括技术栈评估、代码迁移、依赖项更新及数据库访问层的调整,强调了分阶段迁移、保持代码可维护性及性能监控的重要性。
61 3
|
2月前
|
机器学习/深度学习 编解码 算法
【小样本图像分割-4】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
《nnU-Net: 自适应框架用于基于U-Net的医学图像分割》是一篇2018年的论文,发表在Nature上。该研究提出了一种自适应的医学图像分割框架nnU-Net,能够自动调整模型的超参数以适应不同的数据集。通过2D和3D U-Net及级联U-Net的组合,nnU-Net在10个医学分割数据集上取得了卓越的性能,无需手动调整。该方法强调数据增强、预处理和训练策略等技巧,为医学图像分割提供了一个强大的解决方案。
90 0
【小样本图像分割-4】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
|
2月前
|
微服务
微服务实践之使用 Visual Studio 2022 调试Dapr 应用程序
微服务实践之使用 Visual Studio 2022 调试Dapr 应用程序
44 2
|
3月前
|
开发框架 .NET C#
VSCode开发.net项目时调试无效
【9月更文挑战第22天】在使用 VSCode 开发 .NET 项目时遇到调试问题,可从项目配置、调试配置、调试器安装、运行环境、日志和错误信息等方面排查。确认项目类型及文件配置,检查 `launch.json` 文件及配置项,确保调试器扩展已安装并启用,验证 .NET 运行时版本和环境变量,查看 VSCode 输出窗口和项目日志文件,检查权限及代码错误。若问题仍未解决,可查阅官方文档或社区论坛。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
本文讨论了在基于.NET 6和.NET Framework的WinForms项目中添加图表控件的不同方法。由于.NET 6的WinForms项目默认不包含Chart控件,可以通过NuGet包管理器安装如ScottPlot等图表插件。而对于基于.NET Framework的WinForms项目,Chart控件是默认存在的,也可以通过NuGet安装额外的图表插件,例如LiveCharts。文中提供了通过NuGet添加图表控件的步骤和截图说明。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
|
3月前
|
自然语言处理 C# 图形学
使用dnSpyEx对.NET Core程序集进行反编译、编辑和调试
使用dnSpyEx对.NET Core程序集进行反编译、编辑和调试