Leaked source code of windows server 2003
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.
 
 
 
 
 
 

240 lines
3.3 KiB

/*++
Copyright (c) 1990-2003 Microsoft Corporation
Module Name:
plotdbg.c
Abstract:
This module contains all plotter's debugging functions
Author:
15-Nov-1993 Mon 17:57:24 created
[Environment:]
GDI Device Driver - Plotter.
[Notes:]
Revision History:
--*/
#include "precomp.h"
#pragma hdrstop
#if DBG
BOOL DoPlotWarn = FALSE;
VOID
cdecl
PlotDbgPrint(
LPSTR pszFormat,
...
)
/*++
Routine Description:
This fucntion output the debug informat to the debugger
Arguments:
pszFormat - format string
... - variable data
Return Value:
VOID
Author:
15-Nov-1993 Mon 17:57:59 created
Revision History:
--*/
{
va_list vaList;
#if defined(UMODE) || defined(USERMODE_DRIVER)
static WCHAR wOutBuf[768];
static WCHAR wFormatBuf[256];
size_t cch;
//
// We assume that UNICODE flag is turn on for the compilation, bug the
// format string passed to here is ASCII version, so we need to convert
// it to LPWSTR before the wvsprintf()
//
if (!SUCCEEDED(StringCchLengthA(pszFormat, CCHOF(wFormatBuf), &cch)))
{
return;
}
va_start(vaList, pszFormat);
MultiByteToWideChar(CP_ACP, 0, pszFormat, -1, wFormatBuf, CCHOF(wFormatBuf));
if (!SUCCEEDED(StringCchVPrintfW(wOutBuf, CCHOF(wOutBuf), wFormatBuf, vaList)))
{
return;
}
va_end(vaList);
OutputDebugString((LPCTSTR)wOutBuf);
OutputDebugString(TEXT("\n"));
#else
va_start(vaList, pszFormat);
EngDebugPrint("PLOT",pszFormat,vaList);
va_end(vaList);
#endif
}
VOID
PlotDbgType(
INT Type
)
/*++
Routine Description:
this function output the ERROR/WARNING message
Arguments:
Type
Return Value:
Author:
15-Nov-1993 Mon 22:53:01 created
Revision History:
--*/
{
extern TCHAR DebugDLLName[];
#if defined(UMODE) || defined(USERMODE_DRIVER)
if (Type) {
OutputDebugString((Type < 0) ? TEXT("ERROR: ") : TEXT("WARNING: "));
}
OutputDebugString(DebugDLLName);
OutputDebugString(TEXT("!"));
#else
PlotDbgPrint("%s: %ws!\n",
(Type < 0) ? "ERROR" : "WARNING",
DebugDLLName);
#endif
}
VOID
_PlotAssert(
LPSTR pMsg,
LPSTR pFalseExp,
LPSTR pFilename,
UINT LineNo,
DWORD_PTR Exp,
BOOL Stop
)
/*++
Routine Description:
This function output assertion message and false expression to the debugger
then break into the debugger
Arguments:
pMsg - Message to displayed
pFlaseExp - false expression
pFilename - plotter source filename
LineNo - line number of the flase expression
Return Value:
VOID
Author:
15-Nov-1993 Mon 18:47:30 created
Revision History:
--*/
{
PlotDbgPrint("\n");
if ((pMsg) && (*pMsg)) {
PlotDbgPrint(pMsg, Exp);
}
if (pFalseExp && pFilename) {
PlotDbgPrint("Assertion failed (%hs) in %hs line %u",
pFalseExp, pFilename, LineNo);
}
if (Stop) {
DebugBreak();
}
}
#endif // DBG