gwnavruntime/kernel/SF_Debug.h Source File
Go to the documentation of this file.
25 #if !defined(KY_CONFIG_DEBUG)
26 # define KY_NO_DEBUG_OUTPUT
30 #define KY_LOG_SUFFIX_ADD(fmt, ...) (fmt " [%s:%u]\n", __VA_ARGS__, KY_GET_COMPILED_FILENAME, __LINE__)
31 #else // defined(KY_CC_GCC)
32 #define KY_LOG_SUFFIX_ADD(fmt, ...) (fmt " [%s:%u]\n", ## __VA_ARGS__, KY_GET_COMPILED_FILENAME, __LINE__)
34 #define KY_LOG_SUFFIX(args) KY_LOG_SUFFIX_ADD args
36 #ifndef KY_NO_DEBUG_OUTPUT
43 class LogDebugMessager
46 LogDebugMessager(LogMessageId
id)
50 void Print(
const char* fmt, ...) const KY_LOG_VAARG_ATTRIBUTE(2,3);
58 #define KY_DEBUG_OUTPUTN(msgtype, msg) Kaim::LogDebugMessager(msgtype).Print msg;
59 #define KY_DEBUG_OUTPUTN_IF(cond, msgtype, msg) do { if (cond) { KY_DEBUG_OUTPUTN(msgtype, msg); } } while (0)
61 #define KY_DEBUG_OUTPUT(cond, msgtype, str) KY_DEBUG_OUTPUTN_IF(cond, msgtype, ("%s", str))
62 #define KY_DEBUG_OUTPUT1(cond, msgtype, str, p1) KY_DEBUG_OUTPUTN_IF(cond, msgtype, (str, p1))
63 #define KY_DEBUG_OUTPUT2(cond, msgtype, str, p1, p2) KY_DEBUG_OUTPUTN_IF(cond, msgtype, (str, p1, p2))
64 #define KY_DEBUG_OUTPUT3(cond, msgtype, str, p1, p2, p3) KY_DEBUG_OUTPUTN_IF(cond, msgtype, (str, p1, p2, p3))
65 #define KY_DEBUG_OUTPUT4(cond, msgtype, str, p1, p2, p3, p4) KY_DEBUG_OUTPUTN_IF(cond, msgtype, (str, p1, p2, p3, p4))
66 #define KY_DEBUG_OUTPUT5(cond, msgtype, str, p1, p2, p3, p4, p5) KY_DEBUG_OUTPUTN_IF(cond, msgtype, (str, p1, p2, p3, p4, p5))
67 #define KY_DEBUG_OUTPUT6(cond, msgtype, str, p1, p2, p3, p4, p5, p6) KY_DEBUG_OUTPUTN_IF(cond, msgtype, (str, p1, p2, p3, p4, p5, p6))
71 #define KY_DEBUG_ASSERTN(cond, msg) do { if (!(cond)) { KY_DEBUG_OUTPUTN(Kaim::Log_DebugAssert, KY_LOG_SUFFIX(msg)); KY_DEBUG_BREAK; } } while (0)
72 #define KY_DEBUG_ASSERT(cond, str) KY_DEBUG_ASSERTN(cond, ("%s", str))
73 #define KY_DEBUG_ASSERT1(cond, str, p1) KY_DEBUG_ASSERTN(cond, (str, p1))
74 #define KY_DEBUG_ASSERT2(cond, str, p1, p2) KY_DEBUG_ASSERTN(cond, (str, p1, p2))
75 #define KY_DEBUG_ASSERT3(cond, str, p1, p2, p3) KY_DEBUG_ASSERTN(cond, (str, p1, p2, p3))
76 #define KY_DEBUG_ASSERT4(cond, str, p1, p2, p3, p4) KY_DEBUG_ASSERTN(cond, (str, p1, p2, p3, p4))
77 #define KY_DEBUG_ASSERT5(cond, str, p1, p2, p3, p4, p5) KY_DEBUG_ASSERTN(cond, (str, p1, p2, p3, p4, p5))
78 #define KY_DEBUG_ASSERT6(cond, str, p1, p2, p3, p4, p5, p6) KY_DEBUG_ASSERTN(cond, (str, p1, p2, p3, p4, p5, p6))
84 #define KY_DEBUG_OUTPUTN(msgtype, msg) ((void)0)
85 #define KY_DEBUG_OUTPUTN_IF(cond, msgtype, msg) ((void)0)
86 #define KY_DEBUG_OUTPUT(cond, msgtype, str ) ((void)0)
87 #define KY_DEBUG_OUTPUT1(cond, msgtype, str, p1) ((void)0)
88 #define KY_DEBUG_OUTPUT2(cond, msgtype, str, p1, p2) ((void)0)
89 #define KY_DEBUG_OUTPUT3(cond, msgtype, str, p1, p2, p3) ((void)0)
90 #define KY_DEBUG_OUTPUT4(cond, msgtype, str, p1, p2, p3, p4) ((void)0)
91 #define KY_DEBUG_OUTPUT5(cond, msgtype, str, p1, p2, p3, p4, p5) ((void)0)
92 #define KY_DEBUG_OUTPUT6(cond, msgtype, str, p1, p2, p3, p4, p5, p6) ((void)0)
96 #define KY_DEBUG_ASSERTN(cond, msg) ((void)0)
97 #define KY_DEBUG_ASSERT(cond, str) ((void)0)
98 #define KY_DEBUG_ASSERT1(cond, str, p1) ((void)0)
99 #define KY_DEBUG_ASSERT2(cond, str, p1, p2) ((void)0)
100 #define KY_DEBUG_ASSERT3(cond, str, p1, p2, p3) ((void)0)
101 #define KY_DEBUG_ASSERT4(cond, str, p1, p2, p3, p4) ((void)0)
102 #define KY_DEBUG_ASSERT5(cond, str, p1, p2, p3, p4, p5) ((void)0)
103 #define KY_DEBUG_ASSERT6(cond, str, p1, p2, p3, p4, p5, p6) ((void)0)
105 #endif // KY_CONFIG_DEBUG
112 #define KY_DEBUG_WARNINGN(msg) do { KY_DEBUG_OUTPUTN(Kaim::Log_DebugWarning, KY_LOG_SUFFIX(msg)); } while (0)
113 #define KY_DEBUG_WARNINGN_IF(cond, msg) do { if (cond) { KY_DEBUG_WARNINGN(msg); } } while (0)
114 #define KY_DEBUG_WARNING(cond, str) KY_DEBUG_WARNINGN_IF(cond, ("%s", str))
115 #define KY_DEBUG_WARNING1(cond, str, p1) KY_DEBUG_WARNINGN_IF(cond, (str, p1))
116 #define KY_DEBUG_WARNING2(cond, str, p1, p2) KY_DEBUG_WARNINGN_IF(cond, (str, p1,p2))
117 #define KY_DEBUG_WARNING3(cond, str, p1, p2, p3) KY_DEBUG_WARNINGN_IF(cond, (str, p1,p2,p3))
118 #define KY_DEBUG_WARNING4(cond, str, p1, p2, p3, p4) KY_DEBUG_WARNINGN_IF(cond, (str, p1,p2,p3,p4))
119 #define KY_DEBUG_WARNING5(cond, str, p1, p2, p3, p4, p5) KY_DEBUG_WARNINGN_IF(cond, (str, p1,p2,p3,p4,p5))
120 #define KY_DEBUG_WARNING6(cond, str, p1, p2, p3, p4, p5, p6) KY_DEBUG_WARNINGN_IF(cond, (str, p1,p2,p3,p4,p5,p6))
123 #define KY_DEBUG_ERRORN(msg) do { KY_DEBUG_OUTPUTN(Kaim::Log_DebugError, KY_LOG_SUFFIX(msg)); } while (0)
124 #define KY_DEBUG_ERRORN_IF(cond, msg) do { if (cond) { KY_DEBUG_ERRORN(msg); } } while (0)
125 #define KY_DEBUG_ERROR(cond, str) KY_DEBUG_ERRORN_IF(cond, ("%s", str))
126 #define KY_DEBUG_ERROR1(cond, str, p1) KY_DEBUG_ERRORN_IF(cond, (str, p1))
127 #define KY_DEBUG_ERROR2(cond, str, p1, p2) KY_DEBUG_ERRORN_IF(cond, (str, p1,p2))
128 #define KY_DEBUG_ERROR3(cond, str, p1, p2, p3) KY_DEBUG_ERRORN_IF(cond, (str, p1,p2,p3))
129 #define KY_DEBUG_ERROR4(cond, str, p1, p2, p3, p4) KY_DEBUG_ERRORN_IF(cond, (str, p1,p2,p3,p4))
130 #define KY_DEBUG_ERROR5(cond, str, p1, p2, p3, p4, p5) KY_DEBUG_ERRORN_IF(cond, (str, p1,p2,p3,p4,p5))
131 #define KY_DEBUG_ERROR6(cond, str, p1, p2, p3, p4, p5, p6) KY_DEBUG_ERRORN_IF(cond, (str, p1,p2,p3,p4,p5,p6))
133 #define KY_DEBUG_MESSAGEN(msg) KY_DEBUG_OUTPUTN(Kaim::Log_DebugMessage, msg)
134 #define KY_DEBUG_MESSAGEN_IF(cond, msg) KY_DEBUG_OUTPUTN_IF(cond, Kaim::Log_DebugMessage, msg)
135 #define KY_DEBUG_MESSAGE(cond, str) KY_DEBUG_MESSAGEN_IF(cond, ("%s", str))
136 #define KY_DEBUG_MESSAGE1(cond, str, p1) KY_DEBUG_MESSAGEN_IF(cond, (str, p1))
137 #define KY_DEBUG_MESSAGE2(cond, str, p1, p2) KY_DEBUG_MESSAGEN_IF(cond, (str, p1,p2))
138 #define KY_DEBUG_MESSAGE3(cond, str, p1, p2, p3) KY_DEBUG_MESSAGEN_IF(cond, (str, p1,p2,p3))
139 #define KY_DEBUG_MESSAGE4(cond, str, p1, p2, p3, p4) KY_DEBUG_MESSAGEN_IF(cond, (str, p1,p2,p3,p4))
140 #define KY_DEBUG_MESSAGE5(cond, str, p1, p2, p3, p4, p5) KY_DEBUG_MESSAGEN_IF(cond, (str, p1,p2,p3,p4,p5))
141 #define KY_DEBUG_MESSAGE6(cond, str, p1, p2, p3, p4, p5, p6) KY_DEBUG_MESSAGEN_IF(cond, (str, p1,p2,p3,p4,p5,p6))
143 #define KY_DEBUG_MESSAGE_LINEN(msg) do { KY_DEBUG_OUTPUTN(Kaim::Log_DebugMessage, KY_LOG_SUFFIX(msg)); } while (0)
144 #define KY_DEBUG_MESSAGE_LINEN_IF(cond, msg) do { if (cond) { KY_DEBUG_MESSAGE_LINEN(msg); } } while (0)
145 #define KY_DEBUG_MESSAGE_LINE(cond, str) KY_DEBUG_MESSAGE_LINEN_IF(cond, ("%s", str))
146 #define KY_DEBUG_MESSAGE_LINE1(cond, str, p1) KY_DEBUG_MESSAGE_LINEN_IF(cond, (str, p1))
147 #define KY_DEBUG_MESSAGE_LINE2(cond, str, p1, p2) KY_DEBUG_MESSAGE_LINEN_IF(cond, (str, p1,p2))
148 #define KY_DEBUG_MESSAGE_LINE3(cond, str, p1, p2, p3) KY_DEBUG_MESSAGE_LINEN_IF(cond, (str, p1,p2,p3))
149 #define KY_DEBUG_MESSAGE_LINE4(cond, str, p1, p2, p3, p4) KY_DEBUG_MESSAGE_LINEN_IF(cond, (str, p1,p2,p3,p4))
150 #define KY_DEBUG_MESSAGE_LINE5(cond, str, p1, p2, p3, p4, p5) KY_DEBUG_MESSAGE_LINEN_IF(cond, (str, p1,p2,p3,p4,p5))
151 #define KY_DEBUG_MESSAGE_LINE6(cond, str, p1, p2, p3, p4, p5, p6) KY_DEBUG_MESSAGE_LINEN_IF(cond, (str, p1,p2,p3,p4,p5,p6))
155 #define KY_DEBUG_SINT(v) KY_DEBUG_OUTPUT1(1, Kaim::Log_DebugMessage, #v "(%d)\n", int(v))
156 #define KY_DEBUG_UINT(v) KY_DEBUG_OUTPUT1(1, Kaim::Log_DebugMessage, #v "(%u)\n", unsigned(v))
157 #define KY_DEBUG_HEX(v) KY_DEBUG_OUTPUT1(1, Kaim::Log_DebugMessage, #v "(0x%X)\n", unsigned(v))
158 #define KY_DEBUG_FLOAT(v) KY_DEBUG_OUTPUT1(1, Kaim::Log_DebugMessage, #v "(%f)\n", double(v))
159 #define KY_DEBUG_DOUBLE(v) KY_DEBUG_OUTPUT1(1, Kaim::Log_DebugMessage, #v "(%f)\n", double(v))
160 #define KY_DEBUG_CHAR(v) KY_DEBUG_OUTPUT1(1, Kaim::Log_DebugMessage, #v "(%c)\n", char(v))
161 #define KY_DEBUG_WCHAR(v) KY_DEBUG_OUTPUT1(1, Kaim::Log_DebugMessage, #v "(%lc)\n", wchar_t(v))
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17