|
|
/*++
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) 4-Jun-1996
Revision History:
--*/ #include "precomp.hxx"
#pragma hdrstop
//
// Static indent count for indenting.
//
UINT TDebugTracer::m_uLev = 0;
/*++
Routine Name:
TDebugTracer
Routine Description:
Construct a trace class and emit a trace message.
Arguments:
pszMessage - Pointer to trace message which will be displayed.
Return Value:
Nothing.
--*/ TDebugTracer:: TDebugTracer( IN LPCSTR pszMessage ) { m_strMsg.pszNarrow = pszMessage; m_bAnsi = TRUE;
TDebugMsg_Msg( kDbgTrace|kDbgNoFileInfo, NULL, 0, NULL, TDebugMsg_Fmt( "%*sEnter %s\n", m_uLev * 4, m_uLev ? " " : "", m_strMsg.pszNarrow ) ); m_uLev++; }
/*++
Routine Name:
TDebugTracer
Routine Description:
Construct a trace class and emit a trace message.
Arguments:
pszMessage - Pointer to trace message which will be displayed.
Return Value:
Nothing.
--*/ TDebugTracer:: TDebugTracer( IN LPCWSTR pszMessage ) { m_strMsg.pszWide = pszMessage; m_bAnsi = FALSE;
TDebugMsg_Msg( kDbgTrace|kDbgNoFileInfo, NULL, 0, NULL, TDebugMsg_Fmt( L"%*sEnter %s\n", m_uLev * 4, m_uLev ? L" " : L"", m_strMsg.pszWide ) ); ++m_uLev; }
/*++
Routine Name:
~TDebugTracer
Routine Description:
Emit a trace message when the trace class falls out of scope.
Arguments:
None.
Return Value:
Nothing.
--*/ TDebugTracer:: ~TDebugTracer( VOID ) { --m_uLev;
if( m_bAnsi ) { TDebugMsg_Msg( kDbgTrace|kDbgNoFileInfo, NULL, 0, NULL, TDebugMsg_Fmt( "%*sLeave %s\n", m_uLev * 4, m_uLev ? " " : "", m_strMsg.pszNarrow ) ); } else { TDebugMsg_Msg( kDbgTrace|kDbgNoFileInfo, NULL, 0, NULL, TDebugMsg_Fmt( L"%*sLeave %s\n", m_uLev * 4, m_uLev ? L" " : L"", m_strMsg.pszWide ) ); } }
|