Zero  0.1.0
Classes | Macros | Typedefs | Variables
w_debug.h File Reference
#include "w_defines.h"
#include "w_base.h"
#include <cassert>
#include <pthread.h>
#include <sstream>
#include <thread>

Go to the source code of this file.

Classes

class  w_debug
 An ErrLog used for tracing (configure –enable-trace) More...
 

Macros

#define ERROUT(a)   std::cerr << "[" << hex << pthread_self() << dec << "] " << __FILE__ << " (" << __LINE__ << ") " a << endl;
 
#define DBGPRINT(a, file, line)
 
#define DBGOUT(a)
 
#define DBGOUT0(a)   DBGOUT(a)
 
#define DBGOUT1(a)
 
#define DBGOUT2(a)
 
#define DBGOUT3(a)
 
#define DBGOUT4(a)
 
#define DBGOUT5(a)
 
#define DBGOUT6(a)
 
#define DBGOUT7(a)
 
#define DBGOUT8(a)
 
#define DBGOUT9(a)
 
#define DBG1(a)   DBGOUT1(a)
 
#define DBG2(a)   DBGOUT2(a)
 
#define DBG3(a)   DBGOUT3(a)
 
#define DBG5(a)   DBGOUT5(a)
 
#define DBG(a)   DBGOUT3(a)
 
#define DBGTHRD(arg)   DBG(<<" th."<< std::this_thread::get_id() << " " arg)
 

Typedefs

typedef ios::fmtflags w_dbg_fmtflags
 

Variables

w_debug _w_debug
 

Detailed Description

This is a set of macros for use with C or C++. They give various levels of debugging printing when compiled with –enable-trace. With tracing, message printing is under the control of an environment variable DEBUG_FLAGS (see debug.cpp). If that variable is set, its value must be a string. The string is searched for FILE and the function name in which the debugging message occurs. If either one appears in the string (value of the env variable), or if the string contains the word "all", the message is printed.

Macro Definition Documentation

§ DBG

#define DBG (   a)    DBGOUT3(a)

§ DBG1

#define DBG1 (   a)    DBGOUT1(a)

§ DBG2

#define DBG2 (   a)    DBGOUT2(a)

§ DBG3

#define DBG3 (   a)    DBGOUT3(a)

§ DBG5

#define DBG5 (   a)    DBGOUT5(a)

§ DBGOUT

#define DBGOUT (   a)
Value:
do { \
if(_w_debug.flag_on(__func__,_strip_filename(__FILE__))) { \
DBGPRINT(a, __FILE__, __LINE__); \
} \
} while (0);
w_debug _w_debug
int flag_on(const char *fn, const char *file)
Definition: w_debug.cpp:181

§ DBGOUT0

#define DBGOUT0 (   a)    DBGOUT(a)

§ DBGOUT1

#define DBGOUT1 (   a)

§ DBGOUT2

#define DBGOUT2 (   a)

§ DBGOUT3

#define DBGOUT3 (   a)

§ DBGOUT4

#define DBGOUT4 (   a)

§ DBGOUT5

#define DBGOUT5 (   a)

§ DBGOUT6

#define DBGOUT6 (   a)

§ DBGOUT7

#define DBGOUT7 (   a)

§ DBGOUT8

#define DBGOUT8 (   a)

§ DBGOUT9

#define DBGOUT9 (   a)

§ DBGPRINT

#define DBGPRINT (   a,
  file,
  line 
)
Value:
std::stringstream ss; \
ss << "[" << hex << pthread_self() << dec << "] " \
<< _strip_filename(file) << " (" << line << ") " a; \
std::cerr << ss.str() << endl;

§ DBGTHRD

#define DBGTHRD (   arg)    DBG(<<" th."<< std::this_thread::get_id() << " " arg)

§ ERROUT

#define ERROUT (   a)    std::cerr << "[" << hex << pthread_self() << dec << "] " << __FILE__ << " (" << __LINE__ << ") " a << endl;

Typedef Documentation

§ w_dbg_fmtflags

Variable Documentation

§ _w_debug

w_debug _w_debug