|
Packit Service |
17f749 |
/************************************************************************************
|
|
Packit Service |
17f749 |
Copyright (C) 2013, 2015 MariaDB Corporation AB
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
This library is free software; you can redistribute it and/or
|
|
Packit Service |
17f749 |
modify it under the terms of the GNU Library General Public
|
|
Packit Service |
17f749 |
License as published by the Free Software Foundation; either
|
|
Packit Service |
17f749 |
version 2.1 of the License, or (at your option) any later version.
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
This library is distributed in the hope that it will be useful,
|
|
Packit Service |
17f749 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit Service |
17f749 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit Service |
17f749 |
Library General Public License for more details.
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
You should have received a copy of the GNU Library General Public
|
|
Packit Service |
17f749 |
License along with this library; if not see <http://www.gnu.org/licenses>
|
|
Packit Service |
17f749 |
or write to the Free Software Foundation, Inc.,
|
|
Packit Service |
17f749 |
51 Franklin St., Fifth Floor, Boston, MA 02110, USA
|
|
Packit Service |
17f749 |
*************************************************************************************/
|
|
Packit Service |
17f749 |
#ifndef _ma_debug_h_
|
|
Packit Service |
17f749 |
#define _ma_debug_h_
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#ifndef MAODBC_DEBUG
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
void ma_debug_print(my_bool ident, char *format, ...);
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MDBUG_C_IS_ON(C) (0)
|
|
Packit Service |
17f749 |
#define MDBUG_C_ENTER(C,A) {}
|
|
Packit Service |
17f749 |
#define MDBUG_C_RETURN(C,A,E) return (A)
|
|
Packit Service |
17f749 |
#define MDBUG_C_PRINT(C, format, args) {}
|
|
Packit Service |
17f749 |
#define MDBUG_C_VOID_RETURN(C) {}
|
|
Packit Service |
17f749 |
#define MDBUG_C_DUMP(C,A,B) {}
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#else
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MA_DEBUG_FLAG 4
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#ifndef WIN32
|
|
Packit Service |
17f749 |
#include <time.h>
|
|
Packit Service |
17f749 |
#endif
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
void ma_debug_print(my_bool ident, char *format, ...);
|
|
Packit Service |
17f749 |
void ma_debug_print_error(MADB_Error *err);
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
/* Debug is on for connection */
|
|
Packit Service |
17f749 |
#define MDBUG_C_IS_ON(C) ((C) && (((MADB_Dbc*)(C))->Options & MA_DEBUG_FLAG))
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#ifdef WIN32
|
|
Packit Service |
17f749 |
#define MDBUG_C_ENTER(C,A)\
|
|
Packit Service |
17f749 |
if (MDBUG_C_IS_ON(C))\
|
|
Packit Service |
17f749 |
{\
|
|
Packit Service |
17f749 |
SYSTEMTIME st;\
|
|
Packit Service |
17f749 |
GetSystemTime(&st);\
|
|
Packit Service |
17f749 |
ma_debug_print(0, ">>> %d-%02d-%02d %02d:%02d:%02d --- %s (thread: %lu) ---", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, A, ((MADB_Dbc*)(C))->mariadb ? mysql_thread_id(((MADB_Dbc*)(C))->mariadb) : 0);\
|
|
Packit Service |
17f749 |
}
|
|
Packit Service |
17f749 |
#else
|
|
Packit Service |
17f749 |
#define MDBUG_C_ENTER(C,A)\
|
|
Packit Service |
17f749 |
if ((C) && (((MADB_Dbc*)(C))->Options & MA_DEBUG_FLAG))\
|
|
Packit Service |
17f749 |
{\
|
|
Packit Service |
17f749 |
time_t t = time(NULL);\
|
|
Packit Service |
17f749 |
struct tm st= *gmtime(&t);\
|
|
Packit Service |
17f749 |
ma_debug_print(0, ">>> %d-%02d-%02d %02d:%02d:%02d --- %s (thread: %d) ---", st.tm_year + 1900, st.tm_mon + 1, st.tm_mday, st.tm_hour, st.tm_min, st.tm_sec, A, ((MADB_Dbc*)(C))->mariadb ? mysql_thread_id(((MADB_Dbc*)(C))->mariadb) : 0);\
|
|
Packit Service |
17f749 |
}
|
|
Packit Service |
17f749 |
#endif
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MDBUG_C_RETURN(C,A,E)\
|
|
Packit Service |
17f749 |
if (MDBUG_C_IS_ON(C))\
|
|
Packit Service |
17f749 |
{\
|
|
Packit Service |
17f749 |
SQLRETURN _ret= (A);\
|
|
Packit Service |
17f749 |
if (_ret && (E)->ReturnValue)\
|
|
Packit Service |
17f749 |
ma_debug_print_error(E); \
|
|
Packit Service |
17f749 |
ma_debug_print(0, "<<< --- end of function, returning %d ---", _ret); \
|
|
Packit Service |
17f749 |
return _ret;\
|
|
Packit Service |
17f749 |
}\
|
|
Packit Service |
17f749 |
return (A);
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MDBUG_C_PRINT(C, format, ...)\
|
|
Packit Service |
17f749 |
if (MDBUG_C_IS_ON(C))\
|
|
Packit Service |
17f749 |
ma_debug_print(1, format, __VA_ARGS__);
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MDBUG_C_VOID_RETURN(C)\
|
|
Packit Service |
17f749 |
if (MDBUG_C_IS_ON(C))\
|
|
Packit Service |
17f749 |
ma_debug_print(0, "<<< --- end of function ---");\
|
|
Packit Service |
17f749 |
return;
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MDBUG_C_DUMP(C,A,B)\
|
|
Packit Service |
17f749 |
if (MDBUG_C_IS_ON(C))\
|
|
Packit Service |
17f749 |
ma_debug_print(1, #A ":\t%" #B, A);
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#endif /* MAODBC_DEBUG */
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
/* These macros will be used to force debug output
|
|
Packit Service |
17f749 |
for functions without a DBC handle */
|
|
Packit Service |
17f749 |
#ifndef MA_ODBC_DEBUG_ALL
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MDBUG_ENTER(A) {}
|
|
Packit Service |
17f749 |
#define MDBUG_RETURN(A) return (A)
|
|
Packit Service |
17f749 |
#define MDBUG_PRINT(format, args) {}
|
|
Packit Service |
17f749 |
#define MDBUG_VOID_RETURN() {}
|
|
Packit Service |
17f749 |
#define MDBUG_DUMP(B,C) {}
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#else
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MDBUG_ENTER(A)\
|
|
Packit Service |
17f749 |
ma_debug_print(0, ">>> --- %s ---", A);
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MDBUG_RETURN(A)\
|
|
Packit Service |
17f749 |
ma_debug_print(0, "<<< .. end of function ---");\
|
|
Packit Service |
17f749 |
return (A);
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MDBUG_PRINT(format, ...)\
|
|
Packit Service |
17f749 |
ma_debug_print(1, format, __VA_ARGS__);
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MDBUG_VOID_RETURN()\
|
|
Packit Service |
17f749 |
ma_debug_print(0, "<<< --- end of function ---");\
|
|
Packit Service |
17f749 |
return;
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#define MDBUG_DUMP(A,B)\
|
|
Packit Service |
17f749 |
ma_debug_print(1, #A ":\t%" #B, A);
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#endif /* MA_ODBC_DEBUG_ALL */
|
|
Packit Service |
17f749 |
|
|
Packit Service |
17f749 |
#endif /* _ma_debug_h_ */
|