c++程序无法进入断点的原因

windows c/c++ 专栏收录该内容
272 篇文章 4 订阅

一.前言

今天调试程序的时候出现了一个烦人的问题,调用的DLL代码中出现问题,但是打断点一直无法进入断点,这问题整了一会还好发现了问题的原因,居然是因为我DLL工程生成的导入库lib的路径错了,程序调用的时候 是用的以前的导入库lib,dll是最新的,最后把新生成的导入库lib更新了一下,可以调试了。这种问题很容易忽略掉,出错时 一时半会也想不来是这里的问题。关于类似的程序无法进入断点的案例还挺多,下面是网上收集的以及自己躺过的一些坑。

 

二.程序代码之间调用,断点无法进入

1.清理解决方案或者项目,重新生成项目(pdb一类文件的更新)

 

2.vs项目下:  工具-->选项-->调试--->常规

可以把这个选项取消勾选以方便调试。

三.程序调用DLL,无法进入DLL源代码中的 断点

VC下Dll项目可被调试的工程基本设置

一个拥有源代码的dll项目需要设置以下几种属性才可以让生成的dll再被其他程序调用时,可以被调试。

1. 设置调试信息格式

这里写图片描述

2. 禁用优化

这里写图片描述

3. 生成调试信息

这里写图片描述
进行上述设置之后,编译得到的c++dll已经具备源代码调试能力。

其他几种影响dll调试的因素

1.清理解决方案或者项目,重新生成项目(pdb一类文件的更新)

2.DLL静态加载时,其导入库需要用到最新的,修改代码后,不要忘记使用最新的导入库lib以及dll,注意目录,因为这个lib很可能是以前的,而不是最新的

3.vs项目下:  工具-->选项-->调试--->常规

可以把这个选项取消勾选以方便调试。

 

参考文章:https://blog.csdn.net/HIVAN1/article/details/82622991

https://blog.csdn.net/desow/article/details/4843556

  • 0
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值