关于VS断点无效,无法正常调试的种种问题的尝试

使用VS2005、VS2008已有些年头,最近连续三次遇到在DEBUG模式下无法在某个指定位置设置断点、调试时直接跳过某行不执行,从此行开始执行的实际上是断点的下一行,种种问题让人挠头!无奈之下下定决心一定要解决此问题,于是有了下面的种种尝试。

尝试一:

1.      Project->Property->ConfigurationProperties->C/C++->General->Debug Information Format:

Program Database for Edit & Continue (/ZI)

Project->Property->ConfigurationProperties->C/C++->General->Warning Level:

Level 4(/W4) //显示所有警告信息,以便发现更多问题。

2.      Project->Property->ConfigurationProperties->C/C++->Optimization->Optimization:

Disabled (/Od) //禁用优化,代码全部生成汇编

3.      Project->Property->ConfigurationProperties->Linker->Debugging->Generate Debug Info:

Yes (/DEBUG) //产生DEBUG信息,即PDB文件。 

尝试二:

Tools->Options->Debugging->General:

去掉:Require source files to exactly match the originalversion

尝试三:

格式问题

调整格式:Ctrl+A全选当前文件,然后

 

尝试四:

编译器保持状态的BUG

删除.aps/.opt/.ncb文件


尝试五:

Windowsunix回车换行符不一致,windows\r\nunix\r

Files->Advanced Save Options:

 

尝试六:

打开汇编代码:当前文件右键->Go To Disassembly

程序汇编代码中,有一行没有汇编语句,且这一行正好是断点无法设置的行(由此怀疑是文件格式问题,导致汇编代码出了问题)

 

总结:

本次是通过尝试五解决的问题,之前使用尝试二也解决过无法调试的问题,估计断点无法调试的问题也就这么多了,以后遇到了再补充。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您在 Visual Studio 2022 中调试 DLL 发现断点无法进入,请确保您已经进行了以下步骤: 1. 确保 DLL 项目已经以调试模式进行构建。在解决方案资源管理器中,右键单击 DLL 项目,选择 "属性"。在属性页中,选择 "配置属性" -> "常规",确保 "配置类型" 设置为 "动态库(.dll)",并且 "调试信息格式" 设置为 "调试"。 2. 确保您的应用程序正确加载了 DLL。在 Visual Studio 中,您可以通过在 "调试" 菜单中选择 "附加到进程" 来手动附加到正在运行的应用程序。选择您的应用程序进程,并点击 "附加" 按钮。 3. 确保您设置了正确的断点。在 DLL 项目的代码中,单击行号旁边空白处设置断点。确保您设置的断点是在实际会执行的代码行上。 4. 如果您的 DLL 是由另一个应用程序加载的,而不是直接运行的,那么请确保您在正确的环境下进行调试。有些应用程序可能会以不同的用户权限或沙盒环境运行,这可能会导致断点无法进入。您可以尝试以管理员权限运行 Visual Studio 或目标应用程序,或者将目标应用程序的启动路径设置为可访问的路径。 5. 确保您的代码没有被优化。在 Visual Studio 中,您可以在 DLL 项目的属性页中的 "配置属性" -> "C/C++" -> "优化" 下,将 "优化" 选项设置为 "无(/Od)",以确保代码没有被优化,从而使断点能够进入。 如果您仍然遇到断点无法进入的问题,建议检查您的代码和项目配置是否正确,并尝试重启 Visual Studio 和目标应用程序。有候,重新构建项目和清理解决方案也有助于解决此类问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值