问题:
现象是用 debug中设置断点会出现One or morebreakpoints cannot be set and have been disabled. Execution will stop at the beginning of the program.
解决方法:
1) Build -> Set Active configuration 中是否选择了Win32Debug
2)断点是否设在了注释信息那一行了,或者设在了变量声明上了(不带赋值的那种),这样会变成白圈的,它就不生效了。
3)请看一下正在进行的程序是否是您所想调试的那个程序,(如果您要调试的不是dll文件就不需要查看这一步)
因为有的时候是这样,比如您想要调试的程序是个dll文件,程序生成在一个您指定的目录下,但system/system32目录下也有这个文件,操作系统就会运行system32下的而不会来进行您想要调试的。这种情况,需要您把文件生成在系统目录下,system32/system(这要看什么操作系统了)
4) Project -> Settings... 打开Project Settings 对话框
查看:在Debug页中的 Executable for debug sessing: 项中的文件名是否是正在调试的程序文件名(包括相对或绝对路径)
如果不是或者为空,请改正或正确填写。
5)【本人使用的方法】如果还不成,请查看一下 C\C++ 页中的
Optimizations: 项,是否选择了Disable [Debug],如果不是,请改过来。
Debug info: 项,看它是否选择了 Program Database for Edit and Continue,如果不是,请改成这个。
然后再看Link页中的 Generate debug info 与 Link incrementally 是否被选择,如果未被选择,请选上它
附录:
使用第5钟方法后,编译时可能产生的问题:
Command line error D2016: '/ZI' and '/O1' command-line options are incompatible
/O1:优化使产生的可执行代码最小
/ZI: 生成程序库文件(Pdb)并支持Edit and Continue调试特性
两者冲突,在Project -> Settings...的C/C++页中的工程选项中删除 "/O1"