Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1998-1999 Microsoft Corporation All rights reserved.
Module Name:
dbgtrace.hxx
Abstract:
Debug tracer routines. Tracer routines are used to display a debugging message on entry and exit of a subroutine call. Note this class relies on the debug message class. A user must use and initialize the debug messages for tracer to work.
Author:
Steve Kiraly (SteveKi) 7-Apr-1996
Revision History:
--*/ #ifndef _DBGTRACE_HXX_
#define _DBGTRACE_HXX_
DEBUG_NS_BEGIN
/********************************************************************
Tracer class
********************************************************************/
class TDebugTracer {
public:
explicit TDebugTracer:: TDebugTracer( IN LPCWSTR pszMessage );
explicit TDebugTracer:: TDebugTracer( IN LPCSTR pszMessage );
TDebugTracer:: ~TDebugTracer( VOID );
protected:
//
// Copying and assignment are not defined.
//
TDebugTracer:: TDebugTracer( const TDebugTracer &rhs );
const TDebugTracer & TDebugTracer:: operator=( const TDebugTracer &rhs );
private:
//
// Used to eliminate casts
//
union StringTrait { LPCWSTR pszWide; // Wide const string
LPCSTR pszNarrow; // Narrow const string
};
StringTrait m_strMsg; // Message unicode or ansi
BOOL m_bAnsi; // Message is ansi flag
static UINT m_uLev; // Current nesting level
};
/********************************************************************
Macro for declaring a tracer class.
********************************************************************/
#if DBG
#define DBG_TRACER( Message ) \
DEBUG_NS::TDebugTracer TDebugTracerClass ( Message )
#else
#define DBG_TRACER( Message ) // Empty
#endif
DEBUG_NS_END
#endif // _DBGTRACE_HXX_
|