1

我正在用 C++ 和 Lua 编写程序。当我在调试器外部以发布模式运行程序时,程序的行为不符合预期(它没有崩溃,只是没有按照我的想法执行)。当我从调试器启动它时,它表现得很好。

我知道程序在调试器中的运行方式与在调试器之外的方式存在差异(堆差异?一些未初始化的变量?)。是否可以配置调试器,使其以尽可能少的更改运行我的程序的发布版本,所以我可以尝试在调试时解决这个问题?

4

2 回答 2

2

这里有几件事可以尝试:

  • 在调试器外部运行,然后附加到进程。当进程从调试器启动时,它会有一个稍微不同的环境,所以如果这是不同行为的原因,那么这将允许你调试它
  • 创建一个关闭优化的发布版本,看看您是否在调试器内部和外部运行相同的行为。如果您仍然可以重现该问题,那么这将使调试它(通过使用上述附加过程方法)更容易
于 2012-06-21T20:56:55.223 回答
0

不确定是否使调试器像发布版本一样,但您可以在某种程度上模拟它们。

取决于行为上的差异到底是什么。

所有变量都初始化了吗?调试器会这样做。您还可以使用 asm { int 3 } 来中断发布模式。

于 2012-06-21T20:40:27.557 回答