若要在 Visual Studio 中调试 .NET 和 ASP.NET Core 源代码,请执行以下操作:
在“工具”->“选项”->“调试”->“常规”中,取消选中“启用‘仅我的代码’”。
确认已选中“启用源链接支持”。
在“工具”->“选项”->“调试”->“符号”中,启用“Microsoft 符号服务器”。
当你单步执行任何 .NET 或 ASP.NET Core 代码时,Visual Studio 会显示源代码。 例如:
在 OnGet 的 Pages/Privacy.cshtml.cs 中设置一个断点,然后选择 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
通过 SSH 在 Unix 上调试 .NET Core
使用 Visual Studio 2017 在 Linux 上调试 ASP Core
其他资源
JIT 优化和调试
“取消 JIT 优化”选项的局限性 将 COMPlus_ReadyToRun 设置为 0
对 ASP.NET Core 的 .NET 热重载支持
使用热重载的测试执行
调试 ASP.NET Core Blazor 应用