调试 Asp.net MVC 5.2.3 源代码

Debugging Asp.net MVC 5.2.3 source code

我的目标是调试 Asp.net MVC 5.2.3 源代码。

  1. 我在 Visual Studio 2013 年创建了 Asp.net MVC 应用程序并进行了更新 所有 NuGet 包。
  2. 按照中所述设置 VS2013 https://referencesource.microsoft.com/setup.html
  3. 已将 http://referencesource.microsoft.com/symbols, https://nuget.smbsrc.net, http://srv.symbolsource.org/pdb/Public, http://srv.symbolsource.org/pdb/MyGet, http://msdl.microsoft.com/download/symbols https://nuget.smbsrc.net 添加到符号

但是当我尝试 "Step Into" 查看控​​制器的方法时,我看到了 "Controller.cs not found"。当我尝试导航到堆栈跟踪时,我看到 "downloading source code from https://nuget.smbsrc.net/" 但源代码未下载。

是否可以调试 Asp.net MVC 5.2.3 的源代码?

更新 1 我已经更改了符号列表。实际是:

此更改后,在模块 window 中存在下一个日志:

https://nuget.smbsrc.net: Symbols downloaded from symbol server. *****\AppData\Local\Temp\SymbolCache\System.Web.Mvc.pdb78BE5BDA9D485C84CA1F292E2AD75E1\System.Web.Mvc.pdb: Symbols loaded.

正如我们所见,pdb 文件已加载。但是当我导航到源代码时,它不会打开。

nuget.smbsrc.net

上似乎没有源代码

我找到解决办法了!

我按照 http://www.symbolsource.org/Public/Wiki/Using but with one exception. I've deleted http://srv.symbolsource.org/pdb/Public from symbol list. I noticed, symbols that downloads from http://srv.symbolsource.org/pdb/Public trying to download source code from https://nuget.smbsrc.net, but symbols that downloaded from http://srv.symbolsource.org/pdb/MyGet 从 symbolsource.org 下载源代码中的描述设置 VS。

如果你想调试 Asp.net mvc 5.2.3 只需删除 http://srv.symbolsource.org/pdb/Public from symbol list and ensure that pdb files downloaded from http://srv.symbolsource.org/pdb/MyGet

我无法使上面发布的解决方案起作用,但我确实找到了另一个解决方案。

为了查看实际源代码,我能够使用来自 JetBrains

dotPeek 打开和查看任何 DLL 文件的源代码

为了在 visual studio 中实际加载源代码,我无法使用 Go To Implementation 导航到源代码(Ctrl+F12), 但我能够通过调试菜单设置断点,在该点 visual studio 将中断然后允许我查看实现。

  1. 使用 dotPeek 查找要中断的完整命名空间方法名称
  2. 在 Visual Studio 导航到 Debug > New BreakPoint > Function Breakpoint (Ctrl+B) 并将断点设置为您在 JetBrains 中找到的函数。示例:System.Web.Mvc.Authorization.AuthorizeCore
  3. 调试 Visual Studio 中的应用程序,它会在点集处中断,让您逐步浏览并探索该功能的源代码