mirror of
https://github.com/bkaradzic/bx.git
synced 2026-02-17 20:52:37 +01:00
Cleanup.
This commit is contained in:
67
src/debug.cpp
Normal file
67
src/debug.cpp
Normal file
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright 2010-2017 Branimir Karadzic. All rights reserved.
|
||||
* License: https://github.com/bkaradzic/bx#license-bsd-2-clause
|
||||
*/
|
||||
|
||||
#include <bx/bx.h>
|
||||
|
||||
#if BX_PLATFORM_ANDROID
|
||||
# include <android/log.h>
|
||||
#elif BX_PLATFORM_WINDOWS || BX_PLATFORM_WINRT || BX_PLATFORM_XBOX360 || BX_PLATFORM_XBOXONE
|
||||
extern "C" __declspec(dllimport) void __stdcall OutputDebugStringA(const char* _str);
|
||||
#elif BX_PLATFORM_IOS || BX_PLATFORM_OSX
|
||||
# if defined(__OBJC__)
|
||||
# import <Foundation/NSObjCRuntime.h>
|
||||
# else
|
||||
# include <CoreFoundation/CFString.h>
|
||||
extern "C" void NSLog(CFStringRef _format, ...);
|
||||
# endif // defined(__OBJC__)
|
||||
#elif 0 // BX_PLATFORM_EMSCRIPTEN
|
||||
# include <emscripten.h>
|
||||
#else
|
||||
# include <stdio.h>
|
||||
#endif // BX_PLATFORM_WINDOWS
|
||||
|
||||
namespace bx
|
||||
{
|
||||
void debugBreak()
|
||||
{
|
||||
#if BX_COMPILER_MSVC
|
||||
__debugbreak();
|
||||
#elif BX_CPU_ARM
|
||||
__builtin_trap();
|
||||
// asm("bkpt 0");
|
||||
#elif !BX_PLATFORM_NACL && BX_CPU_X86 && (BX_COMPILER_GCC || BX_COMPILER_CLANG)
|
||||
// NaCl doesn't like int 3:
|
||||
// NativeClient: NaCl module load failed: Validation failure. File violates Native Client safety rules.
|
||||
__asm__ ("int $3");
|
||||
#else // cross platform implementation
|
||||
int* int3 = (int*)3L;
|
||||
*int3 = 3;
|
||||
#endif // BX
|
||||
}
|
||||
|
||||
void debugOutput(const char* _out)
|
||||
{
|
||||
#if BX_PLATFORM_ANDROID
|
||||
# ifndef BX_ANDROID_LOG_TAG
|
||||
# define BX_ANDROID_LOG_TAG ""
|
||||
# endif // BX_ANDROID_LOG_TAG
|
||||
__android_log_write(ANDROID_LOG_DEBUG, BX_ANDROID_LOG_TAG, _out);
|
||||
#elif BX_PLATFORM_WINDOWS || BX_PLATFORM_WINRT || BX_PLATFORM_XBOX360 || BX_PLATFORM_XBOXONE
|
||||
OutputDebugStringA(_out);
|
||||
#elif BX_PLATFORM_IOS || BX_PLATFORM_OSX
|
||||
# if defined(__OBJC__)
|
||||
NSLog(@"%s", _out);
|
||||
# else
|
||||
NSLog(__CFStringMakeConstantString("%s"), _out);
|
||||
# endif // defined(__OBJC__)
|
||||
#elif 0 // BX_PLATFORM_EMSCRIPTEN
|
||||
emscripten_log(EM_LOG_CONSOLE, "%s", _out);
|
||||
#else
|
||||
fputs(_out, stdout);
|
||||
fflush(stdout);
|
||||
#endif // BX_PLATFORM_
|
||||
}
|
||||
|
||||
} // namespace bx
|
||||
Reference in New Issue
Block a user