运行可执行文件并在Visual Studio中调试它之间有区别吗?

时间:2015-05-24 09:47:52

标签: c++ visual-studio-2010 winapi runtime-error visual-studio-debugging

我正在Windows中编写一段代码,它使用winapi消息框和一些动态内存用于RS232应用程序

当我在调试模式下运行它时(使用VS2010和步入式调试)并在命令行中将其作为可执行文件运行时,我发现同一个应用程序创建了不同的错误时出现了一种奇怪的情况

在第一种情况下,使用winapi消息框正确弹出错误,程序正确返回/结束。第二种情况,它会产生运行时错误以及内存泄漏

这两种运行模式之间是否存在这种差异?以及如何捕获winapi运行时错误?

提前致谢!

1 个答案:

答案 0 :(得分:0)

是的!直接从调试器运行程序,调试堆正在使用中。假设它没有在调试模式下编译。 当调试器加载到进程地址空间时,内存布局会发生变化。所以可能会发生一些奇怪的事情。

如果你有这种奇怪的效果,有时最好将调试器附加到正在运行的进程。