vc6.0 无法运行断点 解决方法

问题:

现象是用 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"

posted on 2012-04-09 11:01  aaa6263  阅读(2085)  评论(0编辑  收藏  举报