调试版本和运行版本之间的区别

Posted

技术标签:

【中文标题】调试版本和运行版本之间的区别【英文标题】:Difference between debugging the release and running the release 【发布时间】:2013-06-10 10:01:04 【问题描述】:

当我从 Visual Studio(F5 热键)生成我的应用的 Release 版本时,一切正常。但是当我运行可执行文件(Release 文件夹中的 exe 文件)时,我遇到了一个错误。太奇怪了。

这两种执行模式有什么区别?

谢谢。

【问题讨论】:

该错误与图形有关。我的应用程序基本上绘制了一个在 Visual Studio 之外执行时无法正确显示的图表。 除了时间安排外,没有显着差异。调试器强烈避免影响程序的执行。寻找环境的东西,比如程序的默认工作目录不指向同一个目录。如果您只有一个监视器,那么当您单步执行或使用断点时,调试器可能会影响程序的绘制行为,从而生成额外的绘制。 如果进程在调试器下启动,ntdll 堆管理器会修改其行为。 故障排除后,似乎我的特殊问题来自尝试访问未初始化的 C 样式数组。似乎调试器“清除”了该错误,而实际执行却失败了。 对象的类型为struct SCustomItem float T[21][3]; 【参考方案1】:

如果您有应用程序属性设置,则“调试”设置和“发布”设置是不同的。 例如,如果我在设置字段中设置了“服务器名称”和“默认数据库名称”,当我编译为“发布”时,它不会提取我在调试时设置的名称。因此,您将需要单独填充发布设置。您没有在帖子中包含该详细信息,但它很容易影响程序会话。

【讨论】:

以上是关于调试版本和运行版本之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

debug和release版本的区别

Debug和Release有啥区别

VC中release和debug版本的区别

VS环境下Debug和Release版本的区别

Qt 调试版和 Qt 发布版有啥区别?

vs中debug和release版本的区别