Please, pay attention that now you are in public part of FAQ-Area. Register and find more FAQ-articles in Personal Cabinet.

FAQ#7001033: Подавление ассертов в режиме Debug (How to supress asserts in Debug mode)

Keywords: ассерт assert debug crash отладка падение Created: 2017-05-02 16:58:18
Linked Articles: Changed: 2017-05-03 14:59:40

Problem:

RU: Всплывающие окна ассертов мешают работе в режиме Debug.
EN: Assert messages interrupt your work in Debug mode.

Solution:

RU: Нужно использовать перенаправление в окно Output для Visual Studio:
EN: You can redirect assert message into the window Output for Visual Studio:

#define UpFlagValue( f, m )         ( (f) |= uint8(m) )
#define DownFlagValue( f, m )       ( (f) &= uint8(~(m)) )
#define TestFlagValue( f, m )       ( (f) & (m) )

int mode = _CrtSetReportMode( _CRT_ASSERT, _CRTDBG_REPORT_MODE );

  if ( TestFlagValue( mode, _CRTDBG_MODE_WNDW ) ) {
    DownFlagValue( mode, _CRTDBG_MODE_WNDW );
    UpFlagValue  ( mode, _CRTDBG_MODE_DEBUG ); // output window
    _CrtSetReportMode( _CRT_ASSERT, mode );
  }