代码之家  ›  专栏  ›  技术社区  ›  Daniel

类构造函数从未在释放模式下执行

  •  0
  • Daniel  · 技术社区  · 16 年前

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

    我在做如下的事情:

    ClassTest test;
    test.DoIt();
    

    断点 DoIt(); 触发器,但断点位于 ClassTest::ClassTest(); 不要。

    1 回复  |  直到 15 年前
        1
  •  5
  •   LeopardSkinPillBoxHat    16 年前

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

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

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

    您可以看到各种奇怪的调试问题,比如在发布模式中点击断点的方式,因为进行了优化。