112 lines
2 KiB
C++
112 lines
2 KiB
C++
/*++
|
|
|
|
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_
|
|
|