.NET调试器无法命中断点(含简单控制台应用)求助
.NET调试器无法正常命中断点问题
环境规格
- 操作系统:Windows 10 22H2
- 开发工具:Visual Studio Professional 2022 17.8.3,已安装C#、C++桌面开发及MAUI workload
- .NET SDK版本:8.0.100和8.0.403
核心症状
创建任意C#项目(如简单Hello World控制台应用)可正常编译运行,但断点无法命中,启动调试后断点失效并提示:
"The breakpoint will not currently be hit. No symbols have been loaded for this document"
- 尝试在Visual Studio Code中通过
dotnet CLI构建和调试,出现相同错误提示 - 文件系统中
.pdb文件与.exe文件在同一目录,但仍触发符号未加载提示 - 调试时
Debug->Windows->Modules窗口为空,无任何模块显示 Debugger.IsAttached返回false,调用Debugger.Launch()和Debugger.Break()导致应用崩溃,进程退出代码为-2147483645(提示未找到调试器)- Visual Studio看似已启动调试:诊断工具正常弹出,可执行“detach”调试器操作
- 修改代码后可正常编译,运行时能看到代码变更效果
已尝试的无效操作
- 多次确认处于Debug模式,切换AnyCpu、X64、X86编译平台均无改善
- 关闭“Optimize Code”选项(Release模式下也已关闭)
- 开启“Suppress jit optimization on module load”无效
- 切换“Enable just my Code”开关无作用
- 执行Clean->Rebuild、删除
obj/bin文件夹、删除.vs文件夹 - 重启Visual Studio及虚拟机
- 在C盘、D盘分别创建项目,无差异
- 修改项目属性->Build->General中的调试符号设置,无效果
混合模式调试的异常表现
启用Debug Properties->Enable Native Code debugging(混合模式调试)后:
- Modules窗口显示已正确加载的原生模块,符号加载提示为
"Symbols loaded without source information"(已启用符号服务器下载) - 托管模块存在异常:提示
"The module did not load at the default load address",符号状态显示"Native debugger skipped loading symbols for managed module",且缺少“Load Symbols”按钮 - 原生调试器启动正常,但托管调试器未正常工作
内容的提问来源于stack exchange,提问作者Gábor Haraszti
相关产品推荐
相关产品推荐

