问题描述:
断点调试是VS中的一大利器,有了它我们可以快速定位到代码的问题所在。在某些情况下会导致设置了断点后程序无法在断点处停下,下面分4种情况来解决断点不会命中的问题
![](https://img.haomeiwen.com/i4316111/addfd83944a14d85.png)
报错原因:
报这种错误的本质原因是,设置断点的这段代码不会被执行。当然,产生这种问题的原因也有很多。
可能一:VS的调试模式不是Debug模式。
可能二:生成的dll文件没有在同一文件夹中。
可能三:修改文件后没有重新编译。
可能四:调试设置问题
解决办法:
1,检查VS的调试模式。VS的调试分为两种,Debug和Release。Debug是专门真对检查程序的bug而设置的一种模式。Release模式对程序的编译进行了优化,一般用于程序发布。首先确保是在Debug模式下设置的断点。
![](https://img.haomeiwen.com/i4316111/c796d2536f7a06fa.jpg)
2,检查设置断点的模块在调试时有没有输出。调试时遇到最多的警告“当前不会命中断点 还没有为该文档加载任何符号 ”。原因是我们设置断点的代码块并没有编译输出。
![](https://img.haomeiwen.com/i4316111/f6b9fe9a436ffb82.jpg)
找到程序的生成目录,通常是在bin文件夹下,删除设置断点代码文件对应的dll文件或exe文件。重新调试项目
![](https://img.haomeiwen.com/i4316111/ace86b015bb7d10e.png)
3,统一引用目录,将引用设置到同一个目录下,防止源码与dll版本不匹配
4,工具——选项——调试——常规中的“要求源文件和原始版本完全匹配”的勾去掉
![](https://img.haomeiwen.com/i4316111/a52ef1e6e01b7a49.jpg)
PS:除了这四种可能外还有其他的可能,这就需要广大贱友多多留言,大家共同完善。
网友评论