X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;ds=sidebyside;f=src%2Fdebug.h;h=1faeece8db56a06eee10b9f8d3547bfc25a6a1c4;hb=e3bd6704a0eb65e9490347680441c7a08df36f7a;hp=2ccbe58bac9670f86d005d3ef24145b3e8553e1e;hpb=e7282816fffc433861e7e83b0bf1de701d3ea2d1;p=dragonfireclient.git diff --git a/src/debug.h b/src/debug.h index 2ccbe58ba..1faeece8d 100644 --- a/src/debug.h +++ b/src/debug.h @@ -17,16 +17,15 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef DEBUG_HEADER -#define DEBUG_HEADER +#pragma once #include #include -#include +#include #include "gettime.h" +#include "log.h" -#if (defined(WIN32) || defined(_WIN32_WCE)) - #define WIN32_LEAN_AND_MEAN +#ifdef _WIN32 #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0501 #endif @@ -34,11 +33,11 @@ with this program; if not, write to the Free Software Foundation, Inc., #ifdef _MSC_VER #include #endif - #define __NORETURN __declspec(noreturn) - #define __FUNCTION_NAME __FUNCTION__ + #define NORETURN __declspec(noreturn) + #define FUNCTION_NAME __FUNCTION__ #else - #define __NORETURN __attribute__ ((__noreturn__)) - #define __FUNCTION_NAME __PRETTY_FUNCTION__ + #define NORETURN __attribute__ ((__noreturn__)) + #define FUNCTION_NAME __PRETTY_FUNCTION__ #endif // Whether to catch all std::exceptions. @@ -50,42 +49,18 @@ with this program; if not, write to the Free Software Foundation, Inc., #define CATCH_UNHANDLED_EXCEPTIONS 0 #endif -/* - Debug output -*/ - -#define DTIME (getTimestamp()+": ") - -extern void debugstreams_init(bool disable_stderr, const char *filename); -extern void debugstreams_deinit(); - -// This is used to redirect output to /dev/null -class Nullstream : public std::ostream { -public: - Nullstream(): - std::ostream(0) - { - } -private: -}; - -extern std::ostream dstream; -extern std::ostream dstream_no_stderr; -extern Nullstream dummyout; - - /* Abort program execution immediately */ -__NORETURN extern void fatal_error_fn( +NORETURN extern void fatal_error_fn( const char *msg, const char *file, unsigned int line, const char *function); #define FATAL_ERROR(msg) \ - fatal_error_fn((msg), __FILE__, __LINE__, __FUNCTION_NAME) + fatal_error_fn((msg), __FILE__, __LINE__, FUNCTION_NAME) #define FATAL_ERROR_IF(expr, msg) \ ((expr) \ - ? fatal_error_fn((msg), __FILE__, __LINE__, __FUNCTION_NAME) \ + ? fatal_error_fn((msg), __FILE__, __LINE__, FUNCTION_NAME) \ : (void)(0)) /* @@ -94,69 +69,34 @@ __NORETURN extern void fatal_error_fn( defined) */ -__NORETURN extern void sanity_check_fn( +NORETURN extern void sanity_check_fn( const char *assertion, const char *file, unsigned int line, const char *function); #define SANITY_CHECK(expr) \ ((expr) \ ? (void)(0) \ - : sanity_check_fn(#expr, __FILE__, __LINE__, __FUNCTION_NAME)) + : sanity_check_fn(#expr, __FILE__, __LINE__, FUNCTION_NAME)) #define sanity_check(expr) SANITY_CHECK(expr) void debug_set_exception_handler(); -/* - DebugStack -*/ - -#define DEBUG_STACK_SIZE 50 -#define DEBUG_STACK_TEXT_SIZE 300 - -extern void debug_stacks_init(); -extern void debug_stacks_print_to(std::ostream &os); -extern void debug_stacks_print(); - -struct DebugStack; -class DebugStacker -{ -public: - DebugStacker(const char *text); - ~DebugStacker(); - -private: - DebugStack *m_stack; - bool m_overflowed; -}; - -#define DSTACK(msg) \ - DebugStacker __debug_stacker(msg); - -#define DSTACKF(...) \ - char __buf[DEBUG_STACK_TEXT_SIZE]; \ - snprintf(__buf, DEBUG_STACK_TEXT_SIZE, __VA_ARGS__); \ - DebugStacker __debug_stacker(__buf); - /* These should be put into every thread */ #if CATCH_UNHANDLED_EXCEPTIONS == 1 #define BEGIN_DEBUG_EXCEPTION_HANDLER try { - #define END_DEBUG_EXCEPTION_HANDLER(logstream) \ - } catch (std::exception &e) { \ - logstream << "An unhandled exception occurred: " \ - << e.what() << std::endl; \ - FATAL_ERROR(e.what()); \ + #define END_DEBUG_EXCEPTION_HANDLER \ + } catch (std::exception &e) { \ + errorstream << "An unhandled exception occurred: " \ + << e.what() << std::endl; \ + FATAL_ERROR(e.what()); \ } #else // Dummy ones #define BEGIN_DEBUG_EXCEPTION_HANDLER - #define END_DEBUG_EXCEPTION_HANDLER(logstream) + #define END_DEBUG_EXCEPTION_HANDLER #endif - -#endif // DEBUG_HEADER - -