解决 'The breakpoint will not currently be hit. No symbols have been loaded for this document.' 警告
解决 ‘The breakpoint will not currently be hit. No symbols have been loaded for this document.’ 警告
技术背景
在使用 Visual Studio 进行调试时,有时会遇到 “The breakpoint will not currently be hit. No symbols have been loaded for this document.” 警告,这意味着调试器无法加载所需的符号文件(.pdb 文件),导致断点无法命中。
实现步骤
检查符号加载信息
- 开始调试,到达断点或使用
Debug > Break All
。 - 使用
Debug > Windows > Modules
,查看加载到进程中的所有程序集列表。 - 找到需要调试信息的程序集,右键单击并选择
Symbol Load Information
。 - 在弹出的对话框中,验证查找
.pdb
文件的目录列表,并确保没有找到旧的.pdb
文件。
确保配置为调试模式
确保选择 “Debug” 而非 “Release” 选项。在项目属性的构建选项卡中,确保 “Define DEBUG constant” 和 “Define TRACE constant” 被选中,“Optimize Code” 未被选中。
重建和清理项目
- 若上述方法无效,可尝试右键单击项目并选择 “Rebuild” 来重建项目。
- 若仍然无效,尝试右键单击项目并选择 “Clean” 来清理项目。
检查项目属性设置
- 右键单击项目,选择 “Properties”。
- 选择 “Build” 选项卡。
- 确保 “Define DEBUG constant” 和 “Define TRACE constant” 被选中,“Optimize Code” 未被选中。
- 点击 “Advanced” 按钮,确保 “Debug Info:” 设置为 “full”。
- 点击 “OK” 并重建项目。
其他可能的解决方法
- 取消 “Enable Just My Code” 选项:在
Tools/Options/Debugging/General
中取消该选项。 - 清理解决方案:右键单击解决方案资源管理器中的解决方案,选择 “Clean solution”,然后重新构建解决方案并尝试调试。
- 设置代码类型自动检测:在 “Attach to Process” 中选择 “Automatically determine the type of code to debug”。
- 删除临时文件:浏览到
C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
目录并删除其中的所有文件。 - 以管理员身份运行 Visual Studio:尝试以管理员身份运行 Visual Studio。
- 启用 “Generate debug info”:在编译器设置中启用该选项。
- 更改配置设置:将配置设置从 “Debug” 更改为 “Release” 或反之。
- 检查平台目标设置:确保项目属性的 “Build” 选项卡中的 “Platform target” 与主菜单 “Test > Test Settings > Default Processor Architecture” 设置一致。
- 确保项目为启动项目:确保要调试的项目被设置为启动项目。
- 删除并重新创建 “Debug” 文件夹:删除项目的 “bin” 文件夹中的 “Debug” 文件夹,然后重新构建项目。
- 检查虚拟目录映射:对于 Web 项目,右键单击项目并选择 “Properties”,转到 “Web” 选项卡,点击 “Create Virtual Directory” 按钮,确保映射正确。
- 更新引用:确保项目引用的是正确的
.dll
文件位置。 - 启用本机代码调试:如果项目包含 C# 和本机代码(C/C++),确保在项目属性的 “Debug” 选项卡中启用 “Native Code debugging”。
核心代码
在某些情况下,可在代码中添加以下代码来触发调试器:
1 |
|
最佳实践
- 定期清理和重建项目,确保
.pdb
文件是最新的。 - 检查项目的配置设置,确保始终处于调试模式。
- 确保引用的
.dll
文件和.pdb
文件位置正确。
常见问题
某些项目的平台目标设置不一致
确保所有项目的平台目标设置一致,可通过项目属性的 “Build” 选项卡进行检查和设置。
符号文件未正确生成
检查项目属性的 “Build” 选项卡中的 “Debug Info” 设置,确保设置为 “full” 或 “pdb-only”。
项目为只读模式
如果从 VSTS 获取的文件为只读模式,可通过右键单击文件夹,选择 “Properties”,在 “General” 选项卡中取消 “read-only” 选项。
解决 'The breakpoint will not currently be hit. No symbols have been loaded for this document.' 警告
https://119291.xyz/posts/solve-breakpoint-symbol-loading-warning/