Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
debug.h File Reference
#include <sqlite3.h>
+ Include dependency graph for debug.h:

Go to the source code of this file.

Macros

#define __DT_DEBUG_SQL_QUERY__(value)
 
#define __DT_DEBUG_ASSERT__(xin)
 
#define __DT_DEBUG_ASSERT_WITH_QUERY__(xin, query)
 
#define DT_DEBUG_SQLITE3_EXEC(a, b, c, d, e)
 
#define DT_DEBUG_SQLITE3_PREPARE_V2(a, b, c, d, e)
 
#define DT_DEBUG_SQLITE3_BIND_INT(a, b, c)   __DT_DEBUG_ASSERT__(sqlite3_bind_int(a, b, c))
 
#define DT_DEBUG_SQLITE3_BIND_INT64(a, b, c)   __DT_DEBUG_ASSERT__(sqlite3_bind_int64(a, b, c))
 
#define DT_DEBUG_SQLITE3_BIND_DOUBLE(a, b, c)   __DT_DEBUG_ASSERT__(sqlite3_bind_double(a, b, c))
 
#define DT_DEBUG_SQLITE3_BIND_TEXT(a, b, c, d, e)   __DT_DEBUG_ASSERT__(sqlite3_bind_text(a, b, c, d, e))
 
#define DT_DEBUG_SQLITE3_BIND_BLOB(a, b, c, d, e)   __DT_DEBUG_ASSERT__(sqlite3_bind_blob(a, b, c, d, e))
 
#define DT_DEBUG_SQLITE3_CLEAR_BINDINGS(a)   __DT_DEBUG_ASSERT__(sqlite3_clear_bindings(a))
 
#define DT_DEBUG_SQLITE3_RESET(a)   __DT_DEBUG_ASSERT__(sqlite3_reset(a))
 
#define DT_DEBUG_TRACE_WRAPPER(thread, function, ...)
 

Macro Definition Documentation

◆ __DT_DEBUG_ASSERT__

#define __DT_DEBUG_ASSERT__ (   xin)
Value:
{ \
_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wshadow\"") const int x = xin; \
if(x != SQLITE_OK) \
{ \
fprintf(stderr, "sqlite3 error: %s:%d, function %s(): %s\n", __FILE__, __LINE__, __FUNCTION__, \
sqlite3_errmsg(dt_database_get(darktable.db))); \
} \
_Pragma("GCC diagnostic pop") \
}
sqlite3 * dt_database_get(const dt_database_t *db)
Definition common/database.c:3675
darktable_t darktable
Definition darktable.c:111
const struct dt_database_t * db
Definition darktable.h:545

◆ __DT_DEBUG_ASSERT_WITH_QUERY__

#define __DT_DEBUG_ASSERT_WITH_QUERY__ (   xin,
  query 
)
Value:
{ \
_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wshadow\"") const int x = xin; \
if(x != SQLITE_OK) \
{ \
fprintf(stderr, "sqlite3 error: %s:%d, function %s(), query \"%s\": %s\n", __FILE__, __LINE__, __FUNCTION__,\
(query), sqlite3_errmsg(dt_database_get(darktable.db))); \
} \
_Pragma("GCC diagnostic pop") \
}

◆ __DT_DEBUG_SQL_QUERY__

#define __DT_DEBUG_SQL_QUERY__ (   value)

◆ DT_DEBUG_SQLITE3_BIND_BLOB

#define DT_DEBUG_SQLITE3_BIND_BLOB (   a,
  b,
  c,
  d,
 
)    __DT_DEBUG_ASSERT__(sqlite3_bind_blob(a, b, c, d, e))

◆ DT_DEBUG_SQLITE3_BIND_DOUBLE

#define DT_DEBUG_SQLITE3_BIND_DOUBLE (   a,
  b,
 
)    __DT_DEBUG_ASSERT__(sqlite3_bind_double(a, b, c))

◆ DT_DEBUG_SQLITE3_BIND_INT

#define DT_DEBUG_SQLITE3_BIND_INT (   a,
  b,
 
)    __DT_DEBUG_ASSERT__(sqlite3_bind_int(a, b, c))

◆ DT_DEBUG_SQLITE3_BIND_INT64

#define DT_DEBUG_SQLITE3_BIND_INT64 (   a,
  b,
 
)    __DT_DEBUG_ASSERT__(sqlite3_bind_int64(a, b, c))

◆ DT_DEBUG_SQLITE3_BIND_TEXT

#define DT_DEBUG_SQLITE3_BIND_TEXT (   a,
  b,
  c,
  d,
 
)    __DT_DEBUG_ASSERT__(sqlite3_bind_text(a, b, c, d, e))

◆ DT_DEBUG_SQLITE3_CLEAR_BINDINGS

#define DT_DEBUG_SQLITE3_CLEAR_BINDINGS (   a)    __DT_DEBUG_ASSERT__(sqlite3_clear_bindings(a))

◆ DT_DEBUG_SQLITE3_EXEC

#define DT_DEBUG_SQLITE3_EXEC (   a,
  b,
  c,
  d,
 
)
Value:
do \
{ \
dt_print(DT_DEBUG_SQL, "[sql] %s:%d, function %s(): exec \"%s\"\n", __FILE__, __LINE__, __FUNCTION__, (b)); \
__DT_DEBUG_ASSERT_WITH_QUERY__(sqlite3_exec(a, b, c, d, e), (b)); \
__DT_DEBUG_SQL_QUERY__(b) \
} while(0)
@ DT_DEBUG_SQL
Definition darktable.h:479

◆ DT_DEBUG_SQLITE3_PREPARE_V2

#define DT_DEBUG_SQLITE3_PREPARE_V2 (   a,
  b,
  c,
  d,
 
)
Value:
do \
{ \
dt_print(DT_DEBUG_SQL, "[sql] %s:%d, function %s(): prepare \"%s\"\n", __FILE__, __LINE__, __FUNCTION__, (b));\
__DT_DEBUG_ASSERT_WITH_QUERY__(sqlite3_prepare_v2(a, b, c, d, e), (b)); \
__DT_DEBUG_SQL_QUERY__(b) \
} while(0)

◆ DT_DEBUG_SQLITE3_RESET

#define DT_DEBUG_SQLITE3_RESET (   a)    __DT_DEBUG_ASSERT__(sqlite3_reset(a))

◆ DT_DEBUG_TRACE_WRAPPER

#define DT_DEBUG_TRACE_WRAPPER (   thread,
  function,
  ... 
)
Value:
do { \
dt_vprint((thread), "[debug_trace] %s is called from %s at %s:%d\n", \
#function, __FUNCTION__, __FILE__, __LINE__); \
function(__VA_ARGS__); \
} while (0)