0

デバッグ ビルドとリリース ビルドの両方を含む VS 2005 C++ プロジェクトがあります。私は次の4つのことを試みました:

  1. Visual Studio でデバッグ実行可能ファイルをビルドし、Visual Studio で実行します。
  2. (1) に組み込まれた実行可能ファイルを、コマンド ライン (Cygwin) を介して外部から実行cdvstudio/debugます。
  3. Visual Studio で Release 実行可能ファイルをビルドし、Visual Studio で実行します。
  4. (3) に組み込まれた実行可能ファイルを、コマンド ライン (Cygwin) を介して外部から実行cdvstudio/releaseます。

最初の 3 つはすべて成功します。プログラムは最後まで実行されます。

ただし、4 つ目は実行時にクラッシュします。デバッグは、原因がmalloc()内部の operatorへの呼び出しであることを示していnew()ます。関連するコンテキストは次のようになります。

template<typename T> class Foo {
    ...
    static void bar() {
        ...
        T* ptr = new T();
        ...
    }
    ...
}

私が説明した 4 つのうち 3 つの症状につながる問題を誰かが思いつくことができれば、非常にありがたいです。

4

2 に答える 2