博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VS 断点不会命中的情况
阅读量:6822 次
发布时间:2019-06-26

本文共 691 字,大约阅读时间需要 2 分钟。

总结下遇到的几次断点无法命中的情况:

1.手误设置为release模式

如果是release模式的情况下,断点跳转命中情况是无法预知的,所以请修改成debug

2.与源文件不一致

这个情况是最常见的,很多网上的教程都叫大家在设置中 把“要求源文件和原始版本完全匹配”选项禁用,

这是没错的,甚至连VS都提示我们,可以去掉这个选项来保证断点命中进行调试,但是这样治标不治本,不是我们想要的

引起这个的真正原因其实是:

断点所在的代码 是属于一个被编译成dll (lib、exe) 之类的库工程,然后主程序引用了这个dll.

但是在F5运行时,只编译了主程序和相关依赖的选项,并没有重新编译dll这个工程,

然而我们又修改了这个dll工程中的某些代码,并下了断点想调试,那么此时VS就会提示断点无法命中。

因为主程序依赖的dll还是旧的dll ,并没有重新生成,但是dll中的代码文件又被修改了,所以断点才无法命中,如果能命中那才奇了怪了

解决方法:

1.就是在启动项目处右键,Build Dependencies ->Project Dependencies ,选择要一起编译的项目。重新F5就可以了。

2.或者手动选择断点所属工程,右键,build/rebuild 即可

 

3.确实不会进断点

上面第二种情况至少文件是一份,只不过被修改了不一致

而这种情况往往是文件根本就是两个文件

编译器会优化代码,有时一些判断或者分支会导致这一块代码确实不会命中,简单来说,你断点下错地方了

 

转载于:https://www.cnblogs.com/kevinWu7/p/10163441.html

你可能感兴趣的文章
可想造一个属于你自己的jQuery库?(二)
查看>>
使用Coverage分析WSGI项目的代码覆盖率
查看>>
Linux 用户被差别对待?无法通过 apple.com 管理 Apple ID
查看>>
spring JdbcTemplate 在项目中的浅层(5个使用场景)封装 ...
查看>>
Kafka科普系列 | 轻松理解Kafka中的延时操作
查看>>
Python零基础学习笔记(二十九)—— OS模块
查看>>
MySQL8.0 - 新特性 - 通过SQL管理UNDO TABLESPACE
查看>>
函数计算实现 oss 上传超大 zip 压缩文件的自动解压处理 ...
查看>>
linux+xampp搭建WordPress个人网站过程详解
查看>>
JavaScript函数_函数作用域
查看>>
深度解析大快DKadoop大数据运维管理平台功能
查看>>
2019年深圳招揽VC/PE:新落户一次性最高奖励1500万 ...
查看>>
1月8日云栖精选夜读 | 克拉克拉:基于阿里云PAI实现渠道ROI投放预测系统 ...
查看>>
RTMP/RTSP直播播放器选择
查看>>
基于Spark的机器学习实践 (七) - 回归算法
查看>>
让你提高效率的 Linux 技巧
查看>>
企业级 SpringBoot 教程 (一)构建第一个SpringBoot工程
查看>>
阿里云有奖调查结果公布,赠送10个阿里巴巴logo胸针
查看>>
Golang学习笔记之WEB框架(gin)基本使用
查看>>
SAP人工智能服务Recast.AI的一个简单例子
查看>>