我经历了很多主题,询问“为什么发布版本失败而不是调试?”,但我遇到的情况是相反的。 这里发布版本工作正常,但调试模式构建中断。 可能发生这种情况的原因或情况是什么? 任何回复表示赞赏。 提前谢谢。
我们的一位朋友给了记忆释放问题一些方向..
这是我面临的同样的事情...... 当我构建在发布模式时,它构建成功,但是当我尝试在调试模式下构建时,它会在有释放已分配内存的语句的位置失败/中断。
代码就像:检查缓冲区是否为空,如果它不为空则释放它...
如果(缓冲液){ 自由(缓冲液) }
当我在该行上保留断点(在if循环内)并在调试模式下检查值时,它显示为“错误指针”。(0x000000)
但问题仍然是为什么它进入if-loop,即使缓冲区的值为0x000000?
答案 0 :(得分:0)
我建议如果你使用visual studio,可能你有不同的配置文件(链接器,库,路径等)用于不同的配置文件:Debug,Release。通常,此IDE与Visual Studio一样,为这些模式提供此类GUI配置。
答案 1 :(得分:0)
我不知道有关您的环境的详细信息,但是一些调试环境需要额外的步骤来触发错误(例如,用无效数据填充free
内存),而发布版本没有,给您更多机会幸运。
问题是,当你从测试数据升级到真实环境时,你的运气往往会耗尽......