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

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、改完设置,忘了重新编译。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值