【解决思路】当前不会命中断点,还未为文档加载任何符号

问题:

        在调试代码过程中,计算机突然蓝屏而强制关闭并重启,以至于vs在运行调试的过程中就在非正常的情况下被迫关闭。

        重启之后,继续打开并运行项目,却发现无法进行调试代码。于是我把鼠标移到断点的红色图标,有提示:当前不会命中断点,还未为文档加载任何符号”。

        文章标题前缀标注了【解决思路】而并非【已解决】。因为导致这个问题的原因是有很多种可能性,并不能确保我提供的解决方案,在每次遇到这个问题时都能够运用得上。但解决思路过程是我写此文的根本目的。

解决过程:

1.
删掉了obj文件和bin文件,重新清理并生成解决方案之后。(首要做法,但未解决
分析:
- 我以为是上次编译的文件和新编辑的代码不匹配的问题造成的,结果不是这个原因。
- 猜测:有可能是生成PDB文件可能有问题,或者PDB读取器找不到PDB文件。

2.
百度常用到的解决方法统统试了一遍,比如更改调试设置啊,取消勾选“要求源文件与原始版本完全匹配”的选项啊等等,结果还是没法解决掉。(放纵法:未解决
分析:
- 排除了第一点分析原因的可能性。
3.
试着在vs 2017运行其他几个项目,比如C++项目,WPF项目,结果都是无法断点调试;再在vs 2019环境里编译运行是可以运行的,可以定位到是vs本身的问题,跟项目无关。
分析:
- 猜测是因为蓝屏原因导致强制重启计算机,随即强制关闭正在运行的vs,以至于vs调试功能坏掉了。(排除法,未解决,已大致定位到原因之处)

3.
这次朋友来了兴趣,帮我一起寻找问题,最终看了项目编译之后的输出信息,再跟另外vs 2019编译后的输出信息进行对比,发现了两者列出来的文字描述不一致。

vs 2019正常列出的信息大致如下:

xx......已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。

而vs 2017输出的内容是:

xx....未能加载 PDB 符号读取器。

分析:
- 加载 PDB 符号读取器已经损坏了(写到此处,电脑崩溃死机,已找到问题根源
- 由于蓝屏强制重启计算机的原因,导致在vs2017运行调试过程中,把加载 PDB 符号读取器弄坏了

4.最终利用VS自带修复工具进行修复,结果是可以成功调试了。(已解决

5.最后还存在着修复前VS遗留的一个问题,但这并不重要,并不是本文所提到的问题导致的。(因此这点可以忽略掉)
遗留问题:如果有出现过运行项目时弹出需要选择“Debugger调试器“”xxx即时调试“的提示弹窗,在这里可以找到解释和解决方法(删除两个注册表的信息便可):

Debug using the Just-In-Time Debugger - Visual Studio (Windows) | Microsoft Docs

6.修复完VS后,由于重置了vs环境一小部分配置的原因,我的项目出现了小毛病,没法正常跑通。但和本文提到的问题没有一点关系,重新部署应用就好。(忽略这点)

反思总结:
        花了三四个小时去解决这个问题,我为此而感到有些不值。但是自己又不想重装VS,因为麻烦,还得重新设置环境,后果也可能重装不好。没办法,只能硬着头皮继续排查下去。除此之外,我很感谢朋友提供了重要的解决思路。

        几乎尝试了网上所提供的常见方法,结果用在我这个问题上却是不可行的。然后我又像是无头苍蝇一样,没有认真去找问题的根源,只急于寻求解决方法,也没有想着别人为什么要这么做,这样子就会做很多无用功。

        自己解决问题的能力还欠缺,思维还是有些死板的。刚开始时就不应该过于依赖百度出来的解决方案,而是更应该先去找产生问题的根源。

        通过这次的经历,我对微软的产品有些失望了,埋的坑确实有点多,也许是因为自身的经验不够吧,再加上平时忙于敲代码,也没心思去捣鼓“和工作无关的事情”。以后肯定还会遇到许多坑的。

        这篇文章先记录到这里,目的是为在自己以后工作中遇到相似难题时,提醒自己解决问题时要灵活处理。同时,我也希望能够帮助到正遇这个问题却没法解决的你。

记录于2022.4

参考资料:
vs 2012 调试不了js -- solution 中script document显示不出来_越努力,越幸运的技术博客_51CTO博客

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值