0

ライブラリによって実行される「重い」計算で始まる C++ プログラムがあります。リリース モードでは約 10 秒かかりますが、デバッグ モードでは約 15 分かかります。したがって、ハックせずに、プログラムの残りの部分をデバッグしたい場合、最初の時間を無駄にする必要があります。

考えられる解決策は、計算の結果をリリース モードでファイルに保存し、次のようなプリプロセッサ ディレクティブを使用してデバッグ モードで読み取ることです。

#ifdef _DEBUG
    read_result_from_file();
#else
    do_heavy_computation();
    save_result_to_file();
#endif

しかし、他の解決策が存在するかどうか疑問に思っていました。たとえば、最初の計算の後でデバッグを開始できるように、デバッグ セッションの状態を保存することは可能ですか?

4

2 に答える 2

1

多くの IDE では、さまざまなデバッグ オプションをさまざまな (サブ) プロジェクト/ライブラリ、さらにはさまざまな翻訳単位に割り当てることができます。make やコマンド ライン コンパイラを使用する場合は、同様のオプションがあります。したがって、IDE によっては、もちろん計算自体をデバッグしたい場合を除き、重いセットアップ計算を独自のライブラリに入れ、常にそのライブラリ (または TU) をリリース モードでコンパイルすることができます。

そうすれば、プログラムの他の部分をデバッグできますが、計算は完全に最適化されます。

于 2013-04-12T08:29:21.357 に答える
1

ランタイムが長いのは (少なくとも部分的には) イテレータの余分なデバッグ コードと STL の関連関数が原因である可能性が非常に高いです。イテレータのデバッグについては、MS ページを参照してください。

15 分から 10 秒かかることはありませんが、15 分よりも 10 秒近くかかる場合があります。

于 2013-04-12T08:35:25.697 に答える