windows-nt/Source/XPSP1/NT/inetsrv/iis/svcs/ftp/perfmon/debug.c
2020-09-26 16:20:57 +08:00

127 lines
2.6 KiB
C

/**********************************************************************/
/** Microsoft Windows NT **/
/** Copyright(c) Microsoft Corp., 1993 **/
/**********************************************************************/
/*
debug.c
This module contains debug support routines for the FTPD Service.
FILE HISTORY:
KeithMo 07-Mar-1993 Created.
*/
#include <windows.h>
#include <string.h>
#include <stdio.h>
#include <stdarg.h>
#include "debug.h"
#if DBG
//
// Private constants.
//
#define MAX_PRINTF_OUTPUT 1024 // characters
#define FTPD_OUTPUT_LABEL "FTPD"
//
// Private types.
//
//
// Private globals.
//
//
// Public functions.
//
/*******************************************************************
NAME: FtpdAssert
SYNOPSIS: Called if an assertion fails. Displays the failed
assertion, file name, and line number. Gives the
user the opportunity to ignore the assertion or
break into the debugger.
ENTRY: pAssertion - The text of the failed expression.
pFileName - The containing source file.
nLineNumber - The guilty line number.
HISTORY:
KeithMo 07-Mar-1993 Created.
********************************************************************/
void FtpdAssert( void * pAssertion,
void * pFileName,
long nLineNumber )
{
char szOutput[MAX_PRINTF_OUTPUT];
sprintf( szOutput,
"\n*** Assertion failed: %s\n*** Source File: %s, line %ld\n\n",
pAssertion,
pFileName,
nLineNumber );
OutputDebugString( szOutput );
DebugBreak();
} // FtpdAssert
/*******************************************************************
NAME: FtpdPrintf
SYNOPSIS: Customized debug output routine.
ENTRY: Usual printf-style parameters.
HISTORY:
KeithMo 07-Mar-1993 Created.
********************************************************************/
void FtpdPrintf( char * pszFormat,
... )
{
char szOutput[MAX_PRINTF_OUTPUT];
va_list ArgList;
sprintf( szOutput,
"%s (%lu): ",
FTPD_OUTPUT_LABEL,
GetCurrentThreadId() );
va_start( ArgList, pszFormat );
vsprintf( szOutput + strlen(szOutput), pszFormat, ArgList );
va_end( ArgList );
IF_DEBUG( OUTPUT_TO_DEBUGGER )
{
OutputDebugString( szOutput );
}
} // FtpdPrintf
//
// Private functions.
//
#endif // DBG