类构造函数从未在发布模式下执行

时间:2008-10-29 22:55:01

标签: visual-studio-2008 visual-c++ class constructor release

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

我正在做类似的事情:

ClassTest test;
test.DoIt();

DoIt();上的断点会触发,但ClassTest::ClassTest();上的断点不会触发。

1 个答案:

答案 0 :(得分:5)

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

  1. 声明一个局部变量
  2. 初始化变量
  3. 以某种方式使用它(例如打印出来)
  4. 然后在上面的步骤(3)中添加断点,并查看该断点是否被击中。

    由于所做的优化,您可以看到各种奇怪的调试问题以及在发布模式中命中断点的方式。