Отладка приложений



         

Программа SUPERASSERT - часть 8


#define VERIFY(x) ASSERT(x)

// Полный assert со всеми украшениями

#define SUPERASSERT(x) ASSERTMACRO ( DA_SHOWSTACKTRACE | \

DA_SHOWMSGBOX | \

 DA_SHOWODS , \

 x ,)

// Макрос режимов

#define SETDIAGASSERTOPTIONS(x) SetDiagAssertOptions(x) 

// Добавить макрос модуля

#define ADDDIAGASSERTMODULE(x) AddDiagAssertModule(x)

 // Макрос трассировки TRACE

#ifdef _cplusplus

#define TRACE ::DiagOutput

#endif

#define TRACED(sz)              DiagOutput(_T("Is"), _T(sz))

#define TRACEl(sz, pi)          DiagOutput(_T(sz), pi)

 #define TRACE2(sz, pi, p2)     DiagOutput(_T(sz), pi, p2)

 #define TRACE3(sz, pi, p2, p3) DiagOutput(_T(sz), pi, p2, p3)

#else // !_DEBUG 

/*/////////////////////////////////////////

_DEBUG !!HE!! определен

//////////////////////////////////////////*/

 #define ASSERTMACRO(a,x)

#define ASSERT(x)

#define VERIFY(x) ((void)(x))

#define SUPERASSERT(x)

#define SETDIAGASSERTOPTIONS(x)

#define ADDDIAGASSERTMODULE(x)

#ifdef _cplusplus

//inline void TraceOutput(LPCTSTR, ...) { }

#define TRACE (void)0

#endif

#define TRACED(fmt)

#define TRACE1(fmt,argl)

 #define TRACE2(fmt,argl,arg2)

 #define TRACE3(fmt,argl,arg2,arg3)

 #endif // _DEBUG

#ifdef _cplusplus

}

#endif //_cplusplus

#endif // _DIAGASSERT_H

С помощью программы SUPERASSERT можно автоматически переадресовывать все вызовы ASSERT и assert к своим функциям. Макросы _ASSERT и __ASSERTE не переадресовываются, чтобы не мешать другим работать с отладочной библиотекой времени выполнения. Не затрагиваются также макросы Visual Basic ASSERT_KINDOF и ASSERT_VALID. Для программ на Visual Basic нужно только включать в проект файл VBASSERTANDTRACE.BAS.

Используя макрос или функцию SUPERASSERT, вы автоматически получите трассу стека. Для макроса ASSERT трассировка стека по умолчанию выключена, т.


Содержание  Назад  Вперед