1 /***************************************************************************
2 * Copyright (C) 2007 by www.databasecache.com *
3 * Contact: praba_tuty@databasecache.com *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 ***************************************************************************/
19 int DebugDM_Alloc
= 0;
20 int DebugDM_VarAlloc
= 0;
21 int DebugDM_Mutex
= 0;
23 int DebugDM_Transaction
= 0;
24 int DebugDM_UndoLog
= 0;
25 int DebugDM_RedoLog
= 0;
26 int DebugDM_Recovery
= 0;
27 int DebugDM_Index
= 0;
28 int DebugDM_HashIndex
= 0;
29 int DebugDM_TreeIndex
= 0;
30 int DebugDM_TrieIndex
= 0;
31 int DebugDM_SystemDatabase
= 0;
32 int DebugDM_Database
= 0;
33 int DebugDM_Table
= 0;
34 int DebugDM_Predicate
= 0;
35 int DebugDM_TableIterator
= 0;
36 int DebugDM_Process
=0;
37 int DebugDM_Network
=0;
38 int DebugDM_Gateway
=0;
39 int DebugDM_Adapter
=0;
41 int DebugDM_CacheServer
=0;
43 int DebugDM_Warning
=0;
48 size_t size
= backtrace(array
, 10);
49 backtrace_symbols_fd(array
, size
, 2);
54 int printError1(DbRetVal val
, char* fname
, int lno
, char *format
, ...)
59 struct timeval timeStamp
;
61 #if defined(SOLARIS) && defined(REMOTE_SOLARIS)
62 os::gettimeofday(&timeStamp
);
63 struct tm
*tempTm
= os::localtime(&timeStamp
.tv_sec
);
64 strftime(tempBuffer
, 64, "%d/%m/%Y %H:%M:%S", (struct std::tm
*) tempTm
);
69 _localtime64_s( &today
, <ime
);
70 strftime(tempBuffer
, 64, "%d/%m/%Y %H:%M:%S", &today
);
72 os::gettimeofday(&timeStamp
);
73 struct tm
*tempTm
= os::localtime(&timeStamp
.tv_sec
);
74 strftime(tempBuffer
, 64, "%d/%m/%Y %H:%M:%S", tempTm
);
77 if (strncasecmp(Conf::config
.getStderrFile(),"stderr", 6) == 0) fd
= 2;
79 fd
= os::openFileForAppend(Conf::config
.getStderrFile(), O_CREAT
);
83 snprintf(mesgBuf
, MAX_TRACE_LOG_LENGTH
, "%s.%6d:%5d:%10lu:%s:%d:",
84 tempBuffer
, timeStamp
.tv_usec
, os::getpid(), os::getthrid(), fname
, lno
);
86 os::write(fd
, mesgBuf
, strlen(mesgBuf
));
90 int err
= ::vsnprintf(mesgBuf
, sizeof(mesgBuf
), format
,ap
);
91 if (err
< 0) { return err
; }
93 os::write(fd
, mesgBuf
, strlen(mesgBuf
));
95 os::write(fd
, mesgBuf
, strlen(mesgBuf
));
100 int printDebug1(int module
, char *fname
, int lno
, char *format
, ...)
103 case DM_Alloc
: { if (!DebugDM_Alloc
) return 1; break; }
104 case DM_VarAlloc
: { if (!DebugDM_VarAlloc
) return 1; break; }
105 case DM_Mutex
: { if (!DebugDM_Mutex
) return 1; break; }
106 case DM_Lock
: { if (!DebugDM_Lock
) return 1; break; }
107 case DM_Transaction
: { if (!DebugDM_Transaction
) return 1; break; }
108 case DM_UndoLog
: { if (!DebugDM_UndoLog
) return 1; break; }
109 case DM_RedoLog
: { if (!DebugDM_RedoLog
) return 1; break; }
110 case DM_Recovery
: { if (!DebugDM_Recovery
) return 1; break; }
111 case DM_HashIndex
: { if (!DebugDM_HashIndex
) return 1; break; }
112 case DM_TrieIndex
: { if (!DebugDM_TrieIndex
) return 1; break; }
113 case DM_TreeIndex
: { if (!DebugDM_TreeIndex
) return 1; break; }
114 case DM_SystemDatabase
: { if (!DebugDM_SystemDatabase
) return 1; break; }
115 case DM_Database
: { if (!DebugDM_Database
) return 1; break; }
116 case DM_Table
: { if (!DebugDM_Table
) return 1; break; }
117 case DM_Iterator
: { if (!DebugDM_TableIterator
) return 1; break; }
118 case DM_Predicate
: { if (!DebugDM_Predicate
) return 1; break; }
119 case DM_Process
: { if (!DebugDM_Process
) return 1; break; }
120 case DM_Network
: { if (!DebugDM_Network
) return 1; break; }
121 case DM_Gateway
: { if (!DebugDM_Gateway
) return 1; break; }
122 case DM_Adapter
: { if (!DebugDM_Adapter
) return 1; break; }
123 case DM_SqlLog
: { if (!DebugDM_SqlLog
) return 1; break; }
124 case DM_CacheServer
: { if (!DebugDM_CacheServer
) return 1; break; }
125 case DM_TEST
: { if (!DebugDM_TEST
) return 1; break; }
126 case DM_Warning
: { if (!DebugDM_Warning
) return 1; break; }
133 sprintf(mesgBuf
, "D:%s:%d:%lu:%s:%d:", moduleNames
[module
],
134 os::getpid(), os::getthrid(), fname
, lno
);
135 os::write(1, mesgBuf
, strlen(mesgBuf
));
137 va_start(ap
, format
);
139 int err
= ::vsnprintf(mesgBuf
, sizeof(mesgBuf
), format
,ap
);
143 os::write(1, mesgBuf
, strlen(mesgBuf
));
144 strcpy(mesgBuf
,"\n");
145 os::write(1, mesgBuf
, strlen(mesgBuf
));