使用 Visual Studio 调试 .NET 和 ASP.NET Core 源代码
若要在 Visual Studio 中调试 .NET 和 ASP.NET Core 源代码,请执行以下操作:
在“工具”->“选项”->“调试”->“常规”中,取消选中“启用‘仅我的代码’”。
确认已选中“启用源链接支持”。
在“工具”->“选项”->“调试”->“符号”中,启用“Microsoft 符号服务器”。
当你单步执行任何 .NET 或 ASP.NET Core 代码时,Visual Studio 会显示源代码。 例如:
在
Pages/Privacy.cshtml.cs
的OnGet
中设置一个断点,然后选择 Privacy 链接。选择“下载源并继续调试”选项之一。
上述说明适用于基本的单步执行函数,但经过优化的 .NET 代码通常会删除局部变量和函数。 若要禁用优化并实现更好的源调试,请执行以下操作:
- 在“工具”->“选项”->“调试”->“常规”中,启用“在模块加载时取消 JIT 优化(仅限托管)”:
- 将环境变量和值
COMPlus_ReadyToRun=0
添加到Properties/launchSettings.json
文件:{ "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:10892", "sslPort": 44315 } }, "profiles": { "WebApplication18": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "https://localhost:7045;http://localhost:5045", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "COMPlus_ReadyToRun": "0" } }, "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "COMPlus_ReadyToRun": "0" } } } }
如果你使用早期版本的 .NET 调试过应用,请删除 %TEMP%/SymbolCache
目录,因为它可能包含过期的旧 PDB。
通过 SSH 在 Unix 上调试 .NET Core
其他资源
- JIT 优化和调试
- “取消 JIT 优化”选项的局限性 将
COMPlus_ReadyToRun
设置为0
- 对 ASP.NET Core 的 .NET 热重载支持
- 使用热重载的测试执行
- 调试 ASP.NET Core Blazor 应用