void WINAPI DbgBreakPoint(const CHAR *pCondition,const CHAR *pFileName,INT iLine) { if(g_fUseKASSERT) { DbgKernelAssert(pCondition, pFileName, iLine); } else { TCHAR szInfo[iDEBUGINFO]; wsprintf(szInfo, TEXT("%hs \nAt line %d of %hs\nContinue? (Cancel to debug)"), pCondition, iLine, pFileName); INT MsgId = MessageBoxOtherThread(NULL,szInfo,TEXT("Hard coded break point"), MB_SYSTEMMODAL | MB_ICONHAND | MB_YESNOCANCEL | MB_SETFOREGROUND); switch (MsgId) { case IDNO: /* Kill the application */ FatalAppExit(FALSE, TEXT("Application terminated")); break; case IDCANCEL: /* Break into the debugger */ DebugBreak(); break; case IDYES: /* Ignore break point continue execution */ break; } } }
void WINAPI DbgAssert(LPCTSTR pCondition,LPCTSTR pFileName,INT iLine) { if(g_fUseKASSERT) { DbgKernelAssert(pCondition, pFileName, iLine); } else { TCHAR szInfo[iDEBUGINFO]; (void)StringCchPrintf(szInfo, NUMELMS(szInfo),TEXT("%s \nAt line %d of %s\nContinue? (Cancel to debug)"), pCondition, iLine, pFileName); INT MsgId = MessageBoxOtherThread(NULL,szInfo,TEXT("ASSERT Failed"), MB_SYSTEMMODAL | MB_ICONHAND | MB_YESNOCANCEL | MB_SETFOREGROUND); switch (MsgId) { case IDNO: /* Kill the application */ FatalAppExit(FALSE, TEXT("Application terminated")); break; case IDCANCEL: /* Break into the debugger */ DebugBreak(); break; case IDYES: /* Ignore assertion continue execution */ break; } } }