vs2008 release 设置断点不起作用

wdarhyr 2012-07-31 11:08:19
c++工程是个dll库,供上层的c#工程调用,以前用debug版的时候还可以跟到c++那个工程里面去,调试很方便,但是由于加了个第三方的库,debug版运行出错,只能用release运行,但是我试过了在项目属性中 设置release版调试的 要改的属性的几个地方,但是好像不起作用啊, 我在c++那个工程中打的断点, release运行时不起作用啊

ps, release版调试设置:

1.菜单"项目" -> "XX属性"
2.配置属性->C/C++->常规 设置"调试信息格式"为"用于编辑并继续的程序数据库(/ZI)"
3. ->优化 设置"优化"为"禁用(/Od)"
*4. ->预处理器 修改"预处理器定义"值NDEBUG为_DEBUG
*5. ->代码生成 修改"运行库"的值为"多线程调试(/MTd)"或者"多线程DLL调试(/MDd)"
6. ->连接器->调试 设置"生成调试信息"为"是(/DEBUG)"
*7. ->调试 设置"可调式程序集"为"运行时跟踪和禁止优化(/ASSEMBLYDEBUG)"
带"*"是可选的

求救啊~~~~
...全文
830 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
王嗣钧 2014-09-10
  • 打赏
  • 举报
回复
引用 3 楼 jackyjkchen 的回复:
如果在debug下不能运行,你觉得你把照抄debug把release给改了能运行么? IDE没那么神奇,debug和release不过是IDE预先给你设置好的两组编译选项,区别就是选项不同,你把选项改成一样就没区别了 这时候别在调试环境上动歪脑筋,老老实实找代码bug
回答的真好,我也是才知道debug和release的区别在于编译选项,不知道楼主注意到没有,VS2008里面也可以自己重新创建一组编译选项的,相当于在创建一个自己的debug方案
jackyjkchen 2012-08-01
  • 打赏
  • 举报
回复
一定要有分辨能力,网上信息无可靠来源,错误的东西太多了
jackyjkchen 2012-08-01
  • 打赏
  • 举报
回复
多google吧,虽说别依赖调试环境,不过能把VS那套超复杂的调试环境整明白,也是极少数人才有的技能,99%的VC程序员甚至不明白如何设条件断点……
wdarhyr 2012-08-01
  • 打赏
  • 举报
回复
当头棒喝, 呵呵,
jackyjkchen 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
哦, 不懂怎么手动...,大哥能否详细道来,,,哈哈
[/Quote]

手上没VS,记不清了,我说过了,与其花功夫在调试环境上,不如多看看代码……

大学编程教育相当失败的一点就是鼓吹“单步调试”,大型软件开发基本没有依赖单步的
wdarhyr 2012-08-01
  • 打赏
  • 举报
回复
哦, 不懂怎么手动...,大哥能否详细道来,,,哈哈
skyworth98 2012-08-01
  • 打赏
  • 举报
回复
估计是vs的bug,碰到过好多次了

是在不行,建议windbg+SOS
jackyjkchen 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
做为启动程序的工程为c#工程,c#调用c++ dll库工程, 在c++ 库里设的断点, 可以用吗?
[/Quote]

可能不行,在调试dll的情况下,调试问题往往很复杂,你可能需要手动加载pdb文件,有可能需要手动附加到进程,都得试试……
wdarhyr 2012-07-31
  • 打赏
  • 举报
回复
做为启动程序的工程为c#工程,c#调用c++ dll库工程, 在c++ 库里设的断点, 可以用吗?
jackyjkchen 2012-07-31
  • 打赏
  • 举报
回复
那第5步就千万别做

release只要打开调试信息,并且调试信息格式保证是Zi而不是ZI,应该就能单步了

wdarhyr 2012-07-31
  • 打赏
  • 举报
回复
因为加了第三方库, 所以debug运行不了, 只能release运行啦,
jackyjkchen 2012-07-31
  • 打赏
  • 举报
回复
如果在debug下不能运行,你觉得你把照抄debug把release给改了能运行么?

IDE没那么神奇,debug和release不过是IDE预先给你设置好的两组编译选项,区别就是选项不同,你把选项改成一样就没区别了

这时候别在调试环境上动歪脑筋,老老实实找代码bug
wdarhyr 2012-07-31
  • 打赏
  • 举报
回复
关键是debug 版运行不了, 只能用release版运行, 现在程序还在改, crash了又不好找原因,都不能定位问题,
jackyjkchen 2012-07-31
  • 打赏
  • 举报
回复
你把release版的优化禁止了,调试选项打开了,那你用release干嘛?

不要去看网上的小报文章,大都是菜鸟写的

release本来就不是给你调试的,真要单步的话,第6步就行了,但是单步得到的值可能是错的

你看的这篇小报文章,纯粹是照抄debug的选项,吧release改了,既然如此,为什么不直接用debug?这不是脱裤子放屁么……

如果无法恢复release的原始选项,建议你删除现有工程(源码保留),重建新工程,用debug调试,用release测试性能或发行

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧