在调试器外部运行时释放构建更改行为

时间:2012-06-21 20:34:35

标签: c++ visual-studio-2010 debugging

我正在使用C ++和Lua编写程序。当我在调试器的发布模式OUTSIDE中运行程序时,程序没有按预期运行(它不会崩溃,它只是没有按照我的想法去做)。当我从调试器启动时,它表现得很好。

据我所知,程序在调试器中的运行方式与一个程序之外的运行方式存在差异(堆差异?一些未初始化的变量?)。是否可以配置调试器,以便它尽可能少地运行我的程序的Release版本,所以我可以尝试在调试时发生这个问题?

2 个答案:

答案 0 :(得分:2)

这里有几件事要尝试:

  • 在调试器外部运行,然后在之后附加到该进程。当从调试器启动进程时,它将具有稍微不同的环境,因此如果这是导致不同行为的原因,那么这将允许您调试它
  • 创建一个关闭优化的发布版本,看看是否在调试器内部和外部运行相同的行为。如果您仍然可以重现该问题,那么这将使调试它(通过使用上面的Attach Process方法)更容易

答案 1 :(得分:0)

不确定是否使调试器像发布版本一样,但您可以稍微模拟它们。

取决于行为的确切差异。

是否已初始化所有变量?调试器就是这样做的。您还可以使用asm {int 3}来中断发布模式。