zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
debug.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 
7 // debug.h: Debugging utilities.
8 
9 #ifndef COMPILER_DEBUG_H_
10 #define COMPILER_DEBUG_H_
11 
12 #include <assert.h>
13 
14 #ifdef _DEBUG
15 #define TRACE_ENABLED // define to enable debug message tracing
16 #endif // _DEBUG
17 
18 // Outputs text to the debug log
19 #ifdef TRACE_ENABLED
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif // __cplusplus
24 void Trace(const char* format, ...);
25 #ifdef __cplusplus
26 }
27 #endif // __cplusplus
28 
29 #else // TRACE_ENABLED
30 
31 #define Trace(...) ((void)0)
32 
33 #endif // TRACE_ENABLED
34 
35 // A macro asserting a condition and outputting failures to the debug log
36 #define ASSERT(expression) do { \
37  if(!(expression)) \
38  Trace("Assert failed: %s(%d): "#expression"\n", __FUNCTION__, __LINE__); \
39  assert(expression); \
40 } while(0)
41 
42 #define UNIMPLEMENTED() do { \
43  Trace("Unimplemented invoked: %s(%d)\n", __FUNCTION__, __LINE__); \
44  assert(false); \
45 } while(0)
46 
47 #define UNREACHABLE() do { \
48  Trace("Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__); \
49  assert(false); \
50 } while(0)
51 
52 #endif // COMPILER_DEBUG_H_
53 
GLint GLenum GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl2ext.h:845
#define Trace(...)
Definition: debug.h:31