00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00020 #ifndef SHDEBUG_HPP
00021 #define SHDEBUG_HPP
00022
00023 #ifdef HAVE_CONFIG_H
00024 #include "config.h"
00025 #endif
00026
00027 #ifdef SH_DEBUG
00028 #include <iostream>
00029 #include <cstdlib>
00030
00031 #define SH_DEBUG_PRINT(x) { std::cerr << __FILE__ << ":" << __LINE__ << ": " << x << std::endl; }
00032 #define SH_DEBUG_WARN(x) { SH_DEBUG_PRINT("Warning: " << x) }
00033 #define SH_DEBUG_ERROR(x) { SH_DEBUG_PRINT("Error: " << x) }
00034 #define SH_DEBUG_ASSERT(cond) { if (!(cond)) { SH_DEBUG_ERROR("Assertion failed: " << # cond); abort(); } }
00035
00036 #else
00037
00038 #define SH_DEBUG_PRINT(x)
00039 #define SH_DEBUG_WARN(x)
00040 #define SH_DEBUG_ERROR(x)
00041 #define SH_DEBUG_ASSERT(cond)
00042
00043 #endif // SH_DEBUG
00044
00045 #endif