# re: VS2005断点失效的问题 回复 更多评论
2009-01-04 17:39 by
这个不是VS的BUG吧,可能不满足 要求源文件与原始版本完成匹配,或者 模块根本就没加载,当然没法调试。
# re: VS2005断点失效的问题 回复 更多评论
2009-01-04 19:23 by
博主,这个根本不是Visual Studio的BUG.
微软的这个IDE是非常强大的,主要是因为你没有了解它的编译原理.
Visual Studio并不是使用g++来编译的,它有自己的编译器,其中有很多不同的编译模式.比如默认的有三种,比较常用的就是Debug,Release模式.
当你使用Debug,即调试模式时,不会出现任何断点失效的问题.想必你使用的编译模式是Release.这个模式使用了非常多的编译优化.在写程序的时候你可能看不出来,其实你在程序运行时随便在哪里设一个断点停下,然后它会自动给你汇编代码,仔细看看,你会发现它为你做了非常多的常数优化.
比如除法,a/=7,你看看它的汇编代码,是进行了一系列的乘加操作,最终得出了正确答案,这个比一个除法的汇编指令快多了.不过当你添了些代码时,想调试它,它因为一些优化原因,就忽略了这些新加入的内容.
总的来说,当你调试程序时,一定要记得使用DEBUG模式,它不会做什么优化,调试没有任何问题.当要输出最终产品,即可执行文件或库时,开启Release模式,并且让整个解决方案和程序全部重新生成,这样才会正确执行,生成的东西才是最优化的,并且程序体积也比DEBUG生成的小很多.
# re: VS2005断点失效的问题 回复 更多评论
2009-01-05 08:59 by
这种情况不解决办法有 很多。你这个方法我没用过。最简单的方法就是ctrl+a, ctrl+f重新格式化这个‘不可调试’的CPP文件,然后编译该CPP文件,一般就可以解决。当然,有时候也无法解决。
@CK
这里说的就是DEBUG模式。
# re: VS2005断点失效的问题 回复 更多评论
2009-01-05 09:49 by
PDB文件失效了,Clean->Rebuild即可
CK,你说话就像放屁,
“当你使用Debug,即调试模式时,不会出现任何断点失效的问题”,你试过吗?,我就在debug模式下,确实是运行不到断点!!!
# re: VS2005断点失效的问题[未登录] 回复 更多评论
2009-03-31 08:31 by
在Debug模式下,我也出现过楼主说的现象,不过个人觉得有以下问题。
1、无效断点所在的项目和启动项目的设置:项目->属性->配置属性->C/C++->常规->调试信息格式,这里不能为『禁用』;
回:默认的Debug模式,这个就是非禁用状态。
2、项目->属性->配置属性->链接器->调试->生成调试信息,这里设为『是』;
回:Debug模式的默认值。(手抽和VS版本混乱者排除)
3、C/C++->优化->优化选择『禁用』;
回:Debug模式的默认值。(手抽和VS版本混乱者排除)
4、删除解决方案下的.ncb文件;
回:这个方法比较管用。
5、工具->选项->调试->『要求源文件与原始版本完成匹配』去掉勾;
回:这个不建议使用,不然编译出来的版本可能不是你最新的代码编译出来的。
而且你也很难找问题,强烈BS这个方法。
6、最后在上述设置的情况下,重新编译整个解决方案;
回:这个方法比较管用。
7、回过头来,发现原来是一段不会被执行到的代码……
回:这个方法最管用^_^。
纯属个人意见,呵呵。
# re: VS2005断点失效的问题[未登录] 回复 更多评论
2009-04-30 12:01 by
这个根本不是Visual Studio的BUG。
说上面这句话的人,应当是没遇到过这个问题,或者根本就不知道调试是什么。
# re: VS2005断点失效的问题 回复 更多评论
2009-04-30 22:26 by
哦?那请问叫做ZZ的,要是可以,请你拿出一个实例来吧,空口的话不要直接就说“根本就不知道调试是什么”,或许您更不知道调试是什么吧
# re: VS2005断点失效的问题 回复 更多评论
2009-05-19 17:17 by
确实在vs2005下碰到过debug模式下断点无法命中的问题,后来我发现是因为pdb符号文件不小心被挪到另外的位置了。可以用二进制编辑工具打开生成的可执行文件,里面有pdb文件的路径信息,pdb文件实际存放的路径要和里面的信息一致。
# re: VS2005断点失效的问题 回复 更多评论
2009-08-18 01:28 by
楼主这个帮助其实是写给新手的,什么是调试怎么调?也许对于有人手把手帮你你可能掌握得比较快,但事实上VS2005默认的调试方式在调试c++程序时根本不会命中断点,不管你们用什么办法,改为debug也好按楼主方法逐条设置也好,总而言之就是把调试打开了
但我不明白CK你是用的是什么方法,具体怎么操作的。我的VS每次新建工程调试C++程序都要按照楼主的方法重新设置才行,而我在工程,选项中即使选择了debug依然不能调试,只有全改才行
关于jason说的默认为什么什么不知你是怎么看到弄得
# re: VS2005断点失效的问题 回复 更多评论
2009-08-18 01:44 by
在附上最新的解决方案
希望能够帮助广大的编程入门者
如果你按照楼主的方法修改正确说明一个问题
你建错工程了!
建工程时如果你想做一个简单的控制台程序,要选择控制台程序
而不是选择空项目!
当选择控制台程序后进入的向导里面选择空项目。
这个问题即使是经验多年的程序员一般也无法帮你解决。楼主的方法是通过能调试的工程和不能调试的工程对比出来的,比较笨也比较难记,取舍自己决定
装比的自重
# re: VS2005断点失效的问题[未登录] 回复 更多评论
2009-09-27 21:46 by
那个CK是不是认为VISUAL STUDIO没有BUG?
我就在DEBUG下遇到了这个问题,也按照楼主的方法解决了!
你还别太自信的好。
# re: VS2005断点失效的问题[未登录] 回复 更多评论
2009-09-28 08:18 by
我的意思不是Visual Studio没有BUG
再完美的程序也有可能有BUG
我的意思是按楼主以及底下的一些回复
你们自己看看,应该是自己的工程属性和设置等问题,而不是说这个是VS的BUG
# re: VS2005断点失效的问题 回复 更多评论
2009-09-28 10:31 by
不过Vs的BUG确实存在的.....有些问题很神奇也很无奈啊...也许是本身的水平问题吧...
# re: VS2005断点失效的问题[未登录] 回复 更多评论
2009-11-11 18:16 by
每次在vss上下载后打断点无效,必须改动下OnInitDialog 函数的内容,再打个断点才能进入其它断点
# re: VS2005断点失效的问题[未登录] 回复 更多评论
2010-03-10 15:57 by
VS确实很多bugs,楼主的方法确实比较实用
中国的程序员别说解决问题,这里就开始骂人了,一群垃圾
# re: VS2005断点失效的问题 回复 更多评论
2010-04-10 16:01 by
把你运行不到断点的代码贴上来吧,我们看看是谁在放P
你连代码都不敢贴还说别人放P,自己SB啊
# re: VS2005断点失效的问题 回复 更多评论
2010-04-10 16:05 by
而且已经说了,这些是你工程设置的问题,而不是所谓的Visual Studio的BUG,我上面表达的意思就是这根本不是BUG,而是设置的问题
# re: VS2005断点失效的问题[未登录] 回复 更多评论
2010-04-12 15:57 by
CK写的程序比较少,这种问题确实存在,尤其在跨平台的库引用上。。。楼主的方法能解决部分问题,有的时候也试试ctrl+a 然后ALT F8吧,我想这是Kevin Lynx 的意思
# re: VS2005断点失效的问题 回复 更多评论
2010-06-16 17:58 by
CK说的是对的,这不属于vs的bug.肯定是工程设置的问题,或者是pdb调试信息数据库位置或文件错误导致的,而pdb文件出现这种问题很可能是用户自己非正常关闭vs或计算机导致的.
但vs确实是有bug的,我所知道的,从vs6到vs2010都一直存在多线程断点调试bug导致系统死锁的bug,而这现象是随机的,有时候很频繁,有时候没有.
# re: VS2005断点失效的问题[未登录] 回复 更多评论
2011-06-12 20:08 by
这个问题我遇过,我的两个项目dll mfc 因跨项目调试,原因是dll 版本不与原码不一致