“当前不会命中断点。源代码与原始版本不同。”VS断点失败问题处理

本文揭示了VS201X中动态库编译问题,焦点在于dll依赖库版本不匹配。当多个库路径配置且旧版本库在前时,如何调整路径顺序以确保动态库根据源码更新。解决方法是调整库路径,让新编译的库优先。

VS201X中出现“当前不会命中断点。源代码与原始版本不同。”,主要是由于当前dll动态库不是当前代码编译出来的。

有一种情况要特别注意,如:a.dll依赖于b.lib,而b.lib同时存在于路径1和路径2,“附加库目录中”同时配置了路径1和路径2,且路径1顺序在路径2前面。

如果此时修改了b.lib的源代码,编译后新的b.lib出现在路径2中,而路径1中始终是旧的b.lib,由于a.dll是否要重新编译,一方面取决于自身代码a库的改动,另一方面取决于其依赖库b.lib是否更改过。

本例中,只修改了b静态库的代码,但是由于路径1的顺序在路径2前面,而路径1中始终是旧的b.lib,因此编译器会认为b库没有被改动,加上a库代码没有改动,所以不会再次编译a动态库。

因此造成的后果是:无论b库代码怎么改动,a库依旧不为所动。进而不能有效断点到b静态库代码中去。

解决方法:路径2顺序在路径1前面,保证a动态库在b静态库代码改动时,第一时间定位到路径2中最新编译的b库,这样a动态库会因而b静态库的修改而自动编译更新。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值