0

正是标题所说的。我正在使用 MSVC++ 2008 express,并且在发布模式下编译时,我的类构造函数永远不会执行。它确实在调试模式下工作。

我正在做类似的事情:

ClassTest test;
test.DoIt();

DoIt();触发器上的断点,但没有断点ClassTest::ClassTest();

4

1 回答 1

5

只是一个想法 - 它可能是发布模式下的编译器优化,可以防止断点被击中。如果构造函数没有做任何事情(即它是无操作的),这可能会发生。尝试在构造函数中添加一些简单的语句,例如

  1. 声明一个局部变量
  2. 初始化变量
  3. 以某种方式使用它(例如打印出来)

然后在上面的步骤(3)上添加一个断点,看看这个断点是否被命中。

由于进行了优化,您可以看到在发布模式下触发断点的方式出现了各种奇怪的调试问题。

于 2008-10-29T23:01:19.583 回答