我有一些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
.