Example #1
0
File: pd.cpp Project: Apulus/GHDB
// write log file
static int _pdLogFileWrite ( const char *pData ) {
   int rc = GHDB_OK ;
   size_t dataSize = strlen ( pData ) ;
   _pdLogMutex.get() ;
   if ( !_pdLogFile.isValid() ) {
      // open the file
      rc = _pdLogFileReopen () ;
      if ( rc ) {
         printf ( "Failed to open log file, errno = %d"OSS_NEWLINE,
                  rc ) ;
         goto error ;
      }
   }
   // write into the file
   rc = _pdLogFile.Write ( pData, dataSize ) ;
   if ( rc ) {
      printf ( "Failed to write into log file, errno = %d"OSS_NEWLINE,
               rc ) ;
      goto error ;
   }
done :
   _pdLogMutex.release() ;
   return rc ;
error :
   goto done ;
}
Example #2
0
File: pd.cpp Project: Apulus/GHDB
// open log file
static int _pdLogFileReopen () {
   int rc = GHDB_OK ;
   _pdLogFile.Close() ;
   rc = _pdLogFile.Open ( _pdDiagLogPath ) ;
   if ( rc ) {
      printf ( "Failed to open log file, errno = %d"OSS_NEWLINE, rc ) ;
      goto error ;
   }
   _pdLogFile.seekToEnd () ;
done :
   return rc ;
error :
   goto done ;
}
Example #3
0
static UINT64 ossMemTraceDump ( void *p, ossPrimitiveFileOp &trapFile )
{
    CHAR lineBuffer [ OSSMEMTRACEDUMPBUFSZ + 1 ] = {0} ;
    CHAR *pAddr = (CHAR*)p ;
    ossMemset ( lineBuffer, 0, sizeof(lineBuffer) ) ;
    ossSnprintf ( lineBuffer, sizeof(lineBuffer),
                  " Address: %p\n", pAddr ) ;
    trapFile.Write ( lineBuffer ) ;
    ossMemset ( lineBuffer, 0, sizeof(lineBuffer) ) ;
    ossSnprintf ( lineBuffer, sizeof(lineBuffer),
                  " Freed: %s, Size: %lld, DebugSize: %d\n",
                  (*(UINT32*)(pAddr+OSS_MEM_HEAD_FREEDOFFSET))==0?"false":"true",
                  (*(UINT64*)(pAddr+OSS_MEM_HEAD_SIZEOFFSET)),
                  (*(UINT32*)(pAddr+OSS_MEM_HEAD_DEBUGOFFSET)) ) ;
    trapFile.Write ( lineBuffer ) ;
    ossMemset ( lineBuffer, 0, sizeof(lineBuffer) ) ;
    ossSnprintf ( lineBuffer, sizeof(lineBuffer),
                  " File: 0x%x, Line: %d\n",
                  (*(UINT32*)(pAddr+OSS_MEM_HEAD_FILEOFFSET)),
                  (*(UINT32*)(pAddr+OSS_MEM_HEAD_LINEOFFSET)) ) ;
    trapFile.Write ( lineBuffer ) ;
    trapFile.Write ( "\n" ) ;
    return (*(UINT64*)(pAddr+OSS_MEM_HEAD_SIZEOFFSET)) ;
}