C++ 디버깅시 함수 추적용 코드
class __auto_EnterTraceOff_LeaveTraceOn
{
public:
__auto_EnterTraceOff_LeaveTraceOn()
{
s_nEnableTraceModule *= -1;
}
~__auto_EnterTraceOff_LeaveTraceOn()
{
if(s_nEnableTraceModule != 0)
s_nEnableTraceModule = 1;
}
};
#if defined(_DEBUG)
static int s_nEnableTraceModule = 1;
# define MODULE_TRACE \
if (s_nEnableTraceModule > 0) ATLTRACE(_T("%s(%d): %s[%d]\n"), __FILEW__, __LINE__, __FUNCTIONW__, ::GetTickCount());
class __auto_EnterTraceOff_LeaveTraceOn
{
public:
__auto_EnterTraceOff_LeaveTraceOn()
{
s_nEnableTraceModule *= -1;
}
~__auto_EnterTraceOff_LeaveTraceOn()
{
if(s_nEnableTraceModule != 0)
s_nEnableTraceModule = 1;
}
};
# define MODULE_TRACE_OFF_AND_AUTOON \
__auto_EnterTraceOff_LeaveTraceOn__tmp;
#else
# define MODULE_TRACE
# define MODULE_TRACE_OFF_AND_AUTOON
#endif
//MODULE_TRACE
함수 부분 시작하자 마자 'MODULE_TRACE' 를 한줄 삽입하면 됩니다.
댓글
댓글 쓰기