如何使用Visual Studio 2017调试.NET Framework源代码?
关于这个话题,这里有一些关于stackoverflow的问题,但是即使阅读了所有这些问题,我仍然无法使其工作。我认为,提出有关如何调试.NET Framework源代码的最新有效解决方案将很有用。
我想在不使用任何外部工具(例如dotPeek作为源服务器)的情况下解决该问题。
首先,我使用Microsoft Visual Studio Enterprise 2017版本15.9.7和通过.NET Framework 4.7.2对其进行了测试。不过,我认为它应该以相同的方式在Community Edition上运行。
采取的步骤:
转到工具/选项/调试/常规,然后执行以下设置:
转到工具/选项/调试/符号,然后:
从https://referencesource.microsoft.com/download.html网站下载您的项目面向的.NET Framework版本的源代码。
将下载的存档(zip)文件解压缩到PC上的便捷路径。
调试您的应用程序;在要调试的.NET代码行中设置一个断点,并使用调试器转到所需的代码行。
注意:您的应用程序启动可能会变慢,因为它将从Internet下载PDB。
按单步执行(默认为F11)。如果您的设置正确,这将导致一些延迟(如果VS崩溃(如我的崩溃),请再次清空符号缓存)。最终它将询问给定文件的来源,例如dictionary.cs。这里可能发生两件事:
whatever.cs未找到,并且有一个链接显示为“ 浏览并找到what.cs ... ”。单击该链接。选择磁盘上相应的.cs文件(您可以在OS上搜索该文件)。
注意:我不得不重新启动VS几次,直到在查找源时“没有崩溃”为止,这很可能是VS中的错误。
注意:由于VS保存了为源文件输入的路径,因此可以停止调试或重新启动VS;否则,您可以停止VS。下次也可以使用。再说,你不必须手动选择框架内的任何多个源文件,因为VS将使用源文件夹您输入,并且将在源文件中有搜索。