windows-nt/Source/XPSP1/NT/net/rras/ras/ppp/rasipxcp/ipxcpdbg.c
2020-09-26 16:20:57 +08:00

172 lines
2.9 KiB
C

/*******************************************************************/
/* Copyright(c) 1993 Microsoft Corporation */
/*******************************************************************/
//***
//
// Filename: ipxcpdbg.c
//
// Description: Debug Stuff
//
// Author: Stefan Solomon (stefans) October 27, 1995.
//
// Revision History:
//
//***
#include "precomp.h"
#pragma hdrstop
//*** TRACE ID FOR RIP ***
DWORD IpxCpTraceID;
DWORD DbgLevel = DEFAULT_DEBUG;
HANDLE DbgLogFileHandle = INVALID_HANDLE_VALUE;
//
// Debug switch which directs debug output to console or file
//
// values:
// 1 - Console Debug
// > 1 - log file: ipxcpdbg.log in the root directory
// 2 - resets the log file for each new connection
DWORD DebugLog;
#if DBG
VOID
SsDbgInitialize(VOID)
{
if (DebugLog == 1) {
CONSOLE_SCREEN_BUFFER_INFO csbi;
COORD coord;
(VOID)AllocConsole( );
(VOID)GetConsoleScreenBufferInfo(
GetStdHandle(STD_OUTPUT_HANDLE),
&csbi
);
coord.X = (SHORT)(csbi.srWindow.Right - csbi.srWindow.Left + 1);
coord.Y = (SHORT)((csbi.srWindow.Bottom - csbi.srWindow.Top + 1) * 20);
(VOID)SetConsoleScreenBufferSize(
GetStdHandle(STD_OUTPUT_HANDLE),
coord
);
}
if(DebugLog > 1) {
DbgLogFileHandle = CreateFile("\\ipxcpdbg.log",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ,
NULL,
CREATE_ALWAYS,
0,
NULL);
}
}
#endif
#if DBG
VOID
SsResetDbgLogFile(VOID)
{
if(DebugLog == 2) {
// reset the debug log file at the beginning for each new connection
if(DbgLogFileHandle != INVALID_HANDLE_VALUE) {
SetFilePointer(DbgLogFileHandle, 0, NULL, FILE_BEGIN);
}
}
}
#endif
#if DBG
VOID
SsAssert(
IN PVOID FailedAssertion,
IN PVOID FileName,
IN ULONG LineNumber
)
{
SS_PRINT(("\nAssertion failed: %s\n at line %ld of %s\n",
FailedAssertion, LineNumber, FileName));
DbgUserBreakPoint( );
} // SsAssert
#endif
#if DBG
VOID
SsPrintf (
char *Format,
...
)
{
va_list arglist;
char OutputBuffer[1024];
ULONG length;
va_start( arglist, Format );
vsprintf( OutputBuffer, Format, arglist );
va_end( arglist );
length = strlen( OutputBuffer );
WriteFile( GetStdHandle(STD_OUTPUT_HANDLE), (LPVOID )OutputBuffer, length, &length, NULL );
if(DbgLogFileHandle != INVALID_HANDLE_VALUE) {
WriteFile(DbgLogFileHandle, (LPVOID )OutputBuffer, length, &length, NULL );
}
} // SsPrintf
#endif
VOID
StartTracing(VOID)
{
IpxCpTraceID = TraceRegister("IPXCP");
}
VOID
TraceIpx(ULONG ComponentID,
char *Format,
...)
{
va_list arglist;
va_start(arglist, Format);
TraceVprintfEx(IpxCpTraceID,
ComponentID | TRACE_USE_MASK,
Format,
arglist);
va_end(arglist);
}
VOID
StopTracing(VOID)
{
TraceDeregister(IpxCpTraceID);
}