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.
 
 
 
 
 
 

63 lines
1.4 KiB

//--------------------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation, 1996
//
// Description:
//
// Microsoft Normandy client debug code
//
// History:
// davidsan 05/01/96 Created
//
//--------------------------------------------------------------------------------------------
#ifdef DEBUG
#include <windows.h>
#include <cldbg.h>
void
AssertProc(LPCSTR szMsg, LPCSTR szFile, UINT iLine, DWORD grf)
{
char szAssert[MAX_PATH * 2];
char *szFormatGLE = NULL;
char szGLE[MAX_PATH];
LONG lErr;
DWORD dwRet;
wnsprintf(szAssert, ARRAYSIZE(szAssert), "Assert failed: %s\n%s line %d.", szMsg, szFile, iLine);
if (grf & ASSERT_GLE)
{
lErr = GetLastError();
if (0 == FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER,
NULL, lErr, 0, (PSTR) &szFormatGLE, 0, NULL))
{
wnsprintf(szGLE, ARRAYSIZE(szGLE), "\nLast error: %d", lErr);
}
else
{
wnsprintf(szGLE, ARRAYSIZE(szGLE), "\nLast error: '%s'", szFormatGLE);
LocalFree((HLOCAL)szFormatGLE);
}
StrCatBUff(szAssert, szGLE, ARRAYSIZE(szAssert));
}
dwRet = MessageBox(NULL, szAssert, "Assertion failure", MB_ABORTRETRYIGNORE);
switch (dwRet)
{
case IDRETRY:
DebugBreak();
break;
case IDIGNORE:
break;
case IDABORT:
ExitProcess(0);
break;
}
}
#endif // DEBUG