From e9e6b902195ffd8b8cac446f220ed0f9fe2bb02a Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Mon, 21 Mar 2011 12:36:58 +0000 Subject: [PATCH] Support output to debug window in Windows --- internal/catch_debugger.hpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/internal/catch_debugger.hpp b/internal/catch_debugger.hpp index 86cab81f..cd84e5f1 100644 --- a/internal/catch_debugger.hpp +++ b/internal/catch_debugger.hpp @@ -17,6 +17,12 @@ #include #if defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) +#define CATCH_PLATFORM_MAC +#elif defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) +#define CATCH_PLATFORM_WINDOWS +#endif + +#ifdef CATCH_PLATFORM_MAC #include #include @@ -80,9 +86,9 @@ inline void BreakIntoDebugger(){} #endif -#elif defined(__WIN32__) && defined(_MSC_VER) -// Thanks to jalfd for the following: - extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent(); +#elif defined(CATCH_PLATFORM_WINDOWS) + extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent(); + extern "C" __declspec(dllimport) void __stdcall OutputDebugStringA( const char* ); #define BreakIntoDebugger() if (IsDebuggerPresent() ) { __debugbreak(); } #else inline void BreakIntoDebugger(){} @@ -90,14 +96,12 @@ inline void writeToDebugConsole( const std::string& text ) { - // !TBD: Get Windows version working - // - need to declare OutputDebugStringA without Windows.h -//#ifdef _WIN32 -// ::OutputDebugStringA( text.c_str() ); -//#else +#ifdef CATCH_PLATFORM_WINDOWS + ::OutputDebugStringA( text.c_str() ); +#else // !TBD: Need a version for Mac/ XCode and other IDEs std::cout << text; -//#endif +#endif } #endif // TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED