您的位置:首页 > 其它

解决 VS 2008 2010 2012 断点 失效 以及 变量 调试 无法 查看

2010-11-11 14:40 627 查看
VS2008按F5无法在断点处停留,主要有以下几种情况:1、在配置-》通用配置-》调试里边把command line、command argument、working dir设置好。并且把该工程设置为启动项,否则断点可能无效。
2、调试时到“附加到进程”菜单里看有没有“aspnet_wp.exe”的进程,如果没有,添加。(只是针对C#)3、控件的事件丢失。这个比较常见。
4、右键解决方案的属性里,看生成项里的“生成调试信息”那里是不是FALSE,如果是,改成TRUE。
5、想要调试的代码行根本不能调试。这个比较少见。6、在工具-> 选项->调试->常规中有个选项,要求源文件与原始版本完全一致,默认的是选中的,取消试试。7、如果是dll工程,把项目属性-〉常规-〉输出目录,设置为调用该dll的exe所在的目录,同时把链接器-〉调试-〉生成调试信息 设为是/DEBUG,重新编译调试看能否起效。8、dll断点失效,可以先重新编译下试试看,不行的话找到刚刚的dll输出的目录,看看是否有pdb文件生成,项目属性-〉链接器-〉调试-〉生成程序数据文件,可以设置pdb输出路径。让pdb和dll都生成在工作目录下。9、如果还不行,用depends工具查看该exe是否调用了你的dll,Release版的exe调用Release的dll,debug也是,可能你的exe就是release版的,它是不会调用xxxxxxd.dll的,所以无法调试,反之亦然。解决方法就是选用和exe版本一致的dll进行调试。10、症状:有的变量可以查看,大部分不行。在工程右键-》属性-》C/C++-》代码优化,改为已禁用(/Od),可以查看了。11、今天静态库断点又失效了,排查结果是:为了方便我把静态库提取到一个文件夹里用,调用该静态库的dll,链接的是我提取的静态库,而不是工程里生产的静态库。解决办法:dll工程右键-》C/C++-》附加包含目录,改为静态库源码头文件路径,右键-》连接器-》附加库目录,改为静态库工程生成静态库的路径。根据依赖,从前到后把lib都重新编译,最后编译dll,debug,断点OK了。 总结:断电失效无非以下几种情况:1、“要求源文件与原始版本完全一致”钩子没有取消2、pdb文件没生成,这个要求你断点位置所在源码的工程的pdb必须有。3、不管是exe、静态库还是动态库的工程,依赖的库不对,要么是路径不对,要么是旧库(没有pdb的)4、改完设置,忘了重新编译。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐