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
います。