C++デバッグしたいコードがいくつかあります。よくあることですが、私のバグは、小さなデータセットでは再現できない特定の条件でのみ発生し、複数の機能を実行した後に発生し、確実に機能します。
特に、プリプロセッサ ディレクティブを使用している場合でも、最初にすべてのデータをstd::set非常に遅いdebug mode(そしてリリースが妥当な)に配置する必要があります。_ITERATOR_DEBUG_LEVEL 0そのため、デバッグ モードではコードの関連するバグのある部分のみを実行しながら、リリースではコードの一部を実行する方法があったのではないかと考えていました。
私は次のようなことを試みました:
#ifdef _DEBUG
#undef _DEBUG
#define MODIFIED_DEBUG
#define NDEBUG
#endif
// build my expensive datastructure etc. etc.
#ifdef MODIFIED_DEBUG
#undef MODIFIED_DEBUG
#undef NDEBUG
#define _DEBUG
#endif
// execute my buggy code
ただし、これは依然として と同じくらい遅いdebug modeです。release modeコードの一部のみの速度を取得する (簡単な) 方法はありますか? 特に、遅いのは主にSTL.
(リリース時にデータ構造を構築する をコンパイルし.lib、デバッグ モードでコード内のライブラリを使用することはできると思いますが、プログラムをデバッグするだけでもかなり面倒です!)。または、デバッグモードで_ITERATOR_DEBUG_LEVEL 0高速化するための定義のようなトリックはありますか? STLを使用してVisual Studio 2010います。