为什么Debug构建失败而Release构建成功?

时间:2012-03-07 19:23:00

标签: c++ visual-studio-2005

我经历了很多主题,询问“为什么发布版本失败而不是调试?”,但我遇到的情况是相反的。 这里发布版本工作正常,但调试模式构建中断。 可能发生这种情况的原因或情况是什么? 任何回复表示赞赏。 提前谢谢。

我们的一位朋友给了记忆释放问题一些方向..

这是我面临的同样的事情...... 当我构建在发布模式时,它构建成功,但是当我尝试在调试模式下构建时,它会在有释放已分配内存的语句的位置失败/中断。

代码就像:检查缓冲区是否为空,如果它不为空则释放它...

如果(缓冲液){   自由(缓冲液) }

当我在该行上保留断点(在if循环内)并在调试模式下检查值时,它显示为“错误指针”。(0x000000)

但问题仍然是为什么它进入if-loop,即使缓冲区的值为0x000000?

2 个答案:

答案 0 :(得分:0)

我建议如果你使用visual studio,可能你有不同的配置文件(链接器,库,路径等)用于不同的配置文件:Debug,Release。通常,此IDE与Visual Studio一样,为这些模式提供此类GUI配置。

答案 1 :(得分:0)

我不知道有关您的环境的详细信息,但是一些调试环境需要额外的步骤来触发错误(例如,用无效数据填充free内存),而发布版本没有,给您更多机会幸运。

问题是,当你从测试数据升级到真实环境时,你的运气往往会耗尽......