VS2008 MFC程序打的断点在调试的时候无效,显示空心带个小锁的形状,请教各位有知道原因的吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2008 MFC程序打的断点在调试的时候无效,显示空心带个小锁的形状,请教各位有知道原因的吗?相关的知识,希望对你有一定的参考价值。
之前是可以单步调试的,修改了一些之后不清楚为什么不能单步调试了,代码还是可以运行的,之前保存的旧代码是可以调试的,这个工程最开始是VC6.0打开的,后来一直用VS2008修改,也可以调试,就最近不能调试了。
1. 首先检查是否生成了调试信息,检查"属性"->"连接器"->"生产调试信息"是否设置正确。2. 再检查调试的文件与源文件是否相符,这可能是因为源文件被修改了没有重新编译。如果不想重新编译则可以去掉选项:"工具"->选项"->"调试"->"要求源文件与原始版本完全匹配"。
3. 检查文件中是否有#line,如果#line混乱,则断点也不会起作用。
4. 网上有人建议删掉ncb文件,这也是一种解决方法,但没有使用过,不知道能否起作用。
我用过第二种方法 参考技术A 修改的代码中,有特殊空格等东西在里面 ,你用编辑->高级->设置选定内容的格式,去处理一下,重新编译下看看!如果不行,你仔细看看你不能调试的地方旁边的代码,仔细调整一个代码格式(全部用shift_tab到最左边,然后进行调整),尽量格式简介,空格,tab对齐。这个问题我以前也困扰过。花了不少时间。 参考技术B 1、无效断点所在的项目和启动项目的设置:项目->属性->配置属性->C/C++->常规->调试信息格式,这里不能为『禁用』; 2、项目->属性->配置属性->链接器->调试->生成调试信息,这里设为『是』; 3、C/C++->优化->优化选择『禁用』; 4、删除解决方案下的.ncb文件; 5、工具->选项->调试->『要求源文件与原始版本完成匹配』去掉勾;(可行) 6、最后在上述设置的情况下,重新编译整个解决方
VS调试技巧:如何让断点在for循环中变量满足某个条件的时候停下来(条件调试)
在断点处右键,点击“条件”或者“操作”
选择触发方式为条件true还是更改
设置触发条件
然后点击“操作”,取消勾选“继续执行代码”
然后我们按F5调试,程序就会自动执行到条件处停止,然后我们可以继续调试
注意:不要设置程序无法触发的条件,那样按F5就会一直卡着!
参考文章:VS调试技巧:让断点在for循环中i为某个值的时候停下来
以上是关于VS2008 MFC程序打的断点在调试的时候无效,显示空心带个小锁的形状,请教各位有知道原因的吗?的主要内容,如果未能解决你的问题,请参考以下文章
用vs2008做的MFC程序,怎么在WINDOWS XP下运行?
用vs调试c++,想在输出窗口那里看见指定变量的值,该怎么写?