まさにタイトル通り。MSVC++ 2008 Express を使用していますが、リリース モードでコンパイルするとクラス コンストラクターが実行されません。デバッグモードで動作します。
私は次のようなことをしています:
ClassTest test;
test.DoIt();
ブレークポイントはDoIt();
トリガーされますが、ブレークポイントはトリガーされClassTest::ClassTest();
ません。
まさにタイトル通り。MSVC++ 2008 Express を使用していますが、リリース モードでコンパイルするとクラス コンストラクターが実行されません。デバッグモードで動作します。
私は次のようなことをしています:
ClassTest test;
test.DoIt();
ブレークポイントはDoIt();
トリガーされますが、ブレークポイントはトリガーされClassTest::ClassTest();
ません。
ちょっと考えてみてください - ブレークポイントに到達するのを妨げているのは、リリース モードでのコンパイラの最適化である可能性があります。これは、コンストラクターが何もしていない場合 (つまり、ノーオペレーションの場合) に発生する可能性があります。コンストラクターにいくつかの簡単なステートメントを追加してみてください。
次に、上記の手順 (3) にブレークポイントを追加し、そのブレークポイントがヒットするかどうかを確認します。
最適化が行われているため、リリース モードでブレークポイントがヒットする方法で、あらゆる種類の奇妙なデバッグの問題を確認できます。