예제 #1
0
파일: mlis.c 프로젝트: kzfm1024/misc
int f_heapdump(int arglist){
    int arg1;
    
    checkarg(LEN1_TEST, "hdmp", arglist);
    arg1 = GET_NUMBER(car(arglist));
    heapdump(arg1,arg1+10);
    return(T);
}
예제 #2
0
void
Memory::Check()
{
#ifdef _DEBUG
   if (! _CrtCheckMemory()) {
      _RPT0(_CRT_ERROR, "\n\nMemory Check Failed.\n");
      heapdump();
      Checkpoint();
      _asm { int 3 }
      exit(1111);
   }
예제 #3
0
파일: error.c 프로젝트: mingpen/OpenNT
void CDECL NEAR
makeError(unsigned lineNumber, unsigned msg, ...)
{
    unsigned exitCode = 2,			       /* general program err */
	     level;
    va_list args;				       /* More arguments      */

    va_start (args, msg);		   /* Point 'args' at first extra arg */

    if (ON(gFlags,F1_CRYPTIC_OUTPUT)
	&& (msg / 1000) == WARNING)
	return;
    if (!bannerDisplayed) {
	displayBanner();
	bannerDisplayed = (BOOL) TRUE;
    }
    switch (WaitForSingleObject(hSemaphore,WAIT_SEMAPHORE_TIME)){
   
            case 0:
   
                  if (lineNumber)
              	fprintf(stderr,"%s(%d) : ",fName,lineNumber);
                  else fprintf(stderr,"%s : ",NmakeStr);
                  switch (level = msg / 1000) {
              	case FATAL:	makeMessage(FATAL_ERROR_MESSAGE);
              			if (msg == OUT_OF_MEMORY) exitCode = 4;
              			break;
              //
              // WIN32 - jaimes - 11/29/90 - Had to rename ERROR to NMAKE_ERROR
              //
              	case NMAKE_ERROR:	makeMessage(ERROR_MESSAGE);
              			break;
              	case WARNING:	makeMessage(WARNING_MESSAGE);
              			break;
              	default:	break;
                  }
                  fprintf(stderr," U%04d: ",msg);		       /* U for utilities     */
                  vfprintf(stderr,getFarMsg(msg),args);
                  putc('\n',stderr);
                  fflush(stderr);
              #ifdef DEBUG_ERRORS
                  if (msg == 1010) heapdump(__FILE__, __LINE__);
              #endif
                  if (level == FATAL) {
              	fprintf(stderr,"Stop.\n");
              	delScriptFiles();
              #ifdef NMK_DEBUG
              	fprintf(stderr, "Exiting with an error ...\n");
              #endif
              	exit(exitCode);
                  }
                  if (!ReleaseSemaphore(hSemaphore, 1, NULL)){
                     //MakA I don't use makeError because I will get blocked
                     printf("ReleaseSemaphore error %d\n",GetLastError());
                     exit(1);
                  }
          case WAIT_TIMEOUT:
              //MakA I don't use makeError because I will get blocked
              printf("Semaphore wait timeout\n");
              exit(1);
              break;
   
          default:
              //MakA I don't use makeError because I will get blocked
              printf("Error unexpected value from semaphore wait %d\n",GetLastError());
              exit(1);
   }
}