Gizmo3D

gzDebug.h File Reference

Basic utilites for debug management. More...

#include "gzBasicTypes.h"
#include "gzTemplates.h"
#include "gzHashUtils.h"
#include "gzMemory.h"
#include "gzReference.h"
#include "gzArgument.h"

Go to the source code of this file.

Classes

class  gzTrace
 Used by the GZTRACE() macro. More...
class  gzDebugInterface
class  gzMessageReceiverInterface
class  gzMessageTranslatorInterface
class  gzMessage
 Debug output notification messages. More...
class  gzProgressInterface
 Virtual interface for gzProgress messages. More...
class  gzProgress
 Progress output notification messages. More...

Defines

#define GZTRACE   gzTrace::NoTraceMessage
#define GZTRACES   gzTrace::NoTraceMessageSender
#define GZMESSAGE   gzMessage::message
 Short Macro for message sending e.g. GZMESSAGE(GZ_MESSAGE_DEBUG,"MyDebug");.
#define GZ_TR(x)   gzMessage::translate("GizmoSDK",x)
 Short Macro for message translation of GizmoSDK system messages;.
#define GZTR(sender, x)   gzMessage::translate(sender,x)
 Short Macro for message translation of general messages;.
#define GZBREAK   {__asm int 3}
#define GZBRKTST   if(err.getErrorCode()==9999){__asm int 3}else throw;
#define GZ_VAR_LINE_2(x, y)   x##y
#define GZ_VAR_LINE_1(x, y)   GZ_VAR_LINE_2(x,y)
#define GZ_VAR_LINE(x)   GZ_VAR_LINE_1(x,__LINE__)
#define gzAssert_(test)   gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(GZ_MESSAGE_ASSERT,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
#define gzAssertText_(test, text)   gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(GZ_MESSAGE_ASSERT,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
#define gzModuleAssert_(module, test)   gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(module,GZ_MESSAGE_ASSERT,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
#define gzModuleAssertText_(module, test, text)   gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(module,GZ_MESSAGE_ASSERT,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
#define gzLevelAssert_(level, test)   gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(level,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
#define gzLevelAssertText_(level, test, text)   gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(level,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
#define gzModuleLevelAssert_(module, level, test)   gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(module,level,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
#define gzModuleLevelAssertText_(module, level, test, text)   gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(module,level,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
#define gzAssert(test)   try{if(!(test))GZMESSAGE(GZ_MESSAGE_ASSERT,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
#define gzAssertText(test, text)   try{if(!(test))GZMESSAGE(GZ_MESSAGE_ASSERT,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
#define gzModuleAssert(module, test)   try{if(!(test))GZMESSAGE(module,GZ_MESSAGE_ASSERT,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
#define gzModuleAssertText(module, test, text)   try{if(!(test))GZMESSAGE(module,GZ_MESSAGE_ASSERT,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
#define gzLevelAssert(level, test)   try{if(!(test))GZMESSAGE(level,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
#define gzLevelAssertText(level, test, text)   try{if(!(test))GZMESSAGE(level,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
#define gzModuleLevelAssert(module, level, test)   try{if(!(test))GZMESSAGE(module,level,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
#define gzModuleLevelAssertText(module, level, test, text)   try{if(!(test))GZMESSAGE(module,level,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
#define GZ_ERRORTEST   ;
#define GZ_ERRORTEST_STOP   ;
#define GZ_TIMER_START(a)   ;
#define GZ_TIMER_STOP(a, b)   ;
#define GZ_ASSERT_(a)   if(FALSE)
#define GZ_ASSERT_TEXT_(a, b)   if(FALSE)
#define GZ_MODULE_ASSERT_(a, b)   if(FALSE)
#define GZ_MODULE_ASSERT_TEXT_(a, b, c)   if(FALSE)
#define GZ_LEVEL_ASSERT_(a, b)   if(FALSE)
#define GZ_LEVEL_ASSERT_TEXT_(a, b, c)   if(FALSE)
#define GZ_MODULE_LEVEL_ASSERT_(a, b, c)   if(FALSE)
#define GZ_MODULE_LEVEL_ASSERT_TEXT_(a, b, c, d)   if(FALSE)
#define GZ_ASSERT(a)   ;
#define GZ_ASSERT_TEXT(a, b)   ;
#define GZ_MODULE_ASSERT(a, b)   ;
#define GZ_MODULE_ASSERT_TEXT(a, b, c)   ;
#define GZ_LEVEL_ASSERT(a, b)   ;
#define GZ_LEVEL_ASSERT_TEXT(a, b, c)   ;
#define GZ_MODULE_LEVEL_ASSERT(a, b, c)   ;
#define GZ_MODULE_LEVEL_ASSERT_TEXT(a, b, c, d)   ;
#define GZ_XXX   GZ_ASSERT_TEXT(FALSE,"Unimplemented Code Path")

Enumerations

enum  gzDebugFlags { GZ_DEBUG_OFF = 0, GZ_DEBUG_SHOW_ALL = 0xffffffff }
 Debug flags used in the debug method to select output. More...
enum  gzMessageLevel {
  GZ_MESSAGE_MEM_DEBUG = 0x1000, GZ_MESSAGE_PERF_DEBUG = 0x1001, GZ_MESSAGE_DEBUG = 0x2000, GZ_MESSAGE_TRACE_DEBUG = 0x2001,
  GZ_MESSAGE_NOTICE = 0x3000, GZ_MESSAGE_WARNING = 0x4000, GZ_MESSAGE_FATAL = 0x5000, GZ_MESSAGE_ASSERT = 0x6000,
  GZ_MESSAGE_ALWAYS = 0x7000, GZ_MESSAGE_LEVEL_MASK = 0xf0ff
}
 Debug output levels. More...
enum  gzMessageEncoding { GZ_MESSAGE_ENCODING_UTF8 = 0, GZ_MESSAGE_ENCODING_ASCII = (1<<8), GZ_MESSAGE_ENCODING_NO_TRANSLATE = (1<<9), GZ_MESSAGE_ENCODING_NO_FORMAT = (1<<10) }
enum  gzMessageType { GZ_MESSAGE_API_INTERNAL = (1<<11) }

Functions

 GZ_USE_BIT_LOGIC (gzDebugFlags)
 GZ_USE_BIT_LOGIC_MIX (gzMessageLevel, gzMessageEncoding)
 Define the gzMessageLevel as a combined set with gzMessageEncoding and gzMessageType.
 GZ_USE_BIT_LOGIC_MIX (gzMessageLevel, gzMessageType)


Detailed Description

Basic utilites for debug management.

There are two types of debug information that can be reported by the system. The first type is the GZTRACE() macro debug information. This type of debug information is automatically removed from the code when you compile a release version (GZ_DEBUG shall not be defined in a release version)

The second type of debug information are the notification messages. They are defined as GZ_NOTIFY_DEBUG , GZ_NOTIFY_NOTICE , GZ_NOTIFY_WARNING , GZ_NOTIFY_FATAL , GZ_NOTIFY_ALWAYS levels. The system shall be set to a propriate level by the setNotifyLevel(). All messages with the same or higher priority is then reported by the system. These messages are not removed in a release version of the code.

Definition in file gzDebug.h.


Define Documentation

#define GZ_ASSERT  )     ;
 

Definition at line 460 of file gzDebug.h.

#define GZ_ASSERT_  )     if(FALSE)
 

Definition at line 450 of file gzDebug.h.

#define GZ_ASSERT_TEXT a,
 )     ;
 

Definition at line 461 of file gzDebug.h.

#define GZ_ASSERT_TEXT_ a,
 )     if(FALSE)
 

Definition at line 451 of file gzDebug.h.

#define GZ_ERRORTEST   ;
 

Definition at line 444 of file gzDebug.h.

#define GZ_ERRORTEST_STOP   ;
 

Definition at line 445 of file gzDebug.h.

#define GZ_LEVEL_ASSERT a,
 )     ;
 

Definition at line 464 of file gzDebug.h.

#define GZ_LEVEL_ASSERT_ a,
 )     if(FALSE)
 

Definition at line 454 of file gzDebug.h.

#define GZ_LEVEL_ASSERT_TEXT a,
b,
 )     ;
 

Definition at line 465 of file gzDebug.h.

#define GZ_LEVEL_ASSERT_TEXT_ a,
b,
 )     if(FALSE)
 

Definition at line 455 of file gzDebug.h.

#define GZ_MODULE_ASSERT a,
 )     ;
 

Definition at line 462 of file gzDebug.h.

#define GZ_MODULE_ASSERT_ a,
 )     if(FALSE)
 

Definition at line 452 of file gzDebug.h.

#define GZ_MODULE_ASSERT_TEXT a,
b,
 )     ;
 

Definition at line 463 of file gzDebug.h.

#define GZ_MODULE_ASSERT_TEXT_ a,
b,
 )     if(FALSE)
 

Definition at line 453 of file gzDebug.h.

#define GZ_MODULE_LEVEL_ASSERT a,
b,
 )     ;
 

Definition at line 466 of file gzDebug.h.

#define GZ_MODULE_LEVEL_ASSERT_ a,
b,
 )     if(FALSE)
 

Definition at line 456 of file gzDebug.h.

#define GZ_MODULE_LEVEL_ASSERT_TEXT a,
b,
c,
 )     ;
 

Definition at line 467 of file gzDebug.h.

#define GZ_MODULE_LEVEL_ASSERT_TEXT_ a,
b,
c,
 )     if(FALSE)
 

Definition at line 457 of file gzDebug.h.

#define GZ_TIMER_START  )     ;
 

Definition at line 446 of file gzDebug.h.

#define GZ_TIMER_STOP a,
 )     ;
 

Definition at line 447 of file gzDebug.h.

#define GZ_TR  )     gzMessage::translate("GizmoSDK",x)
 

Short Macro for message translation of GizmoSDK system messages;.

Definition at line 267 of file gzDebug.h.

#define GZ_VAR_LINE  )     GZ_VAR_LINE_1(x,__LINE__)
 

Definition at line 378 of file gzDebug.h.

#define GZ_VAR_LINE_1 x,
 )     GZ_VAR_LINE_2(x,y)
 

Definition at line 377 of file gzDebug.h.

#define GZ_VAR_LINE_2 x,
 )     x##y
 

Definition at line 376 of file gzDebug.h.

#define GZ_XXX   GZ_ASSERT_TEXT(FALSE,"Unimplemented Code Path")
 

Definition at line 472 of file gzDebug.h.

#define gzAssert test   )     try{if(!(test))GZMESSAGE(GZ_MESSAGE_ASSERT,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
 

Definition at line 394 of file gzDebug.h.

#define gzAssert_ test   )     gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(GZ_MESSAGE_ASSERT,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
 

Definition at line 381 of file gzDebug.h.

#define gzAssertText test,
text   )     try{if(!(test))GZMESSAGE(GZ_MESSAGE_ASSERT,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
 

Definition at line 395 of file gzDebug.h.

#define gzAssertText_ test,
text   )     gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(GZ_MESSAGE_ASSERT,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
 

Definition at line 382 of file gzDebug.h.

#define GZBREAK   {__asm int 3}
 

Definition at line 357 of file gzDebug.h.

#define GZBRKTST   if(err.getErrorCode()==9999){__asm int 3}else throw;
 

Definition at line 367 of file gzDebug.h.

#define gzLevelAssert level,
test   )     try{if(!(test))GZMESSAGE(level,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
 

Definition at line 400 of file gzDebug.h.

#define gzLevelAssert_ level,
test   )     gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(level,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
 

Definition at line 387 of file gzDebug.h.

#define gzLevelAssertText level,
test,
text   )     try{if(!(test))GZMESSAGE(level,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
 

Definition at line 401 of file gzDebug.h.

#define gzLevelAssertText_ level,
test,
text   )     gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(level,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
 

Definition at line 388 of file gzDebug.h.

#define GZMESSAGE   gzMessage::message
 

Short Macro for message sending e.g. GZMESSAGE(GZ_MESSAGE_DEBUG,"MyDebug");.

Examples:
dbviewer.cpp.

Definition at line 264 of file gzDebug.h.

#define gzModuleAssert module,
test   )     try{if(!(test))GZMESSAGE(module,GZ_MESSAGE_ASSERT,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
 

Definition at line 397 of file gzDebug.h.

#define gzModuleAssert_ module,
test   )     gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(module,GZ_MESSAGE_ASSERT,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
 

Definition at line 384 of file gzDebug.h.

#define gzModuleAssertText module,
test,
text   )     try{if(!(test))GZMESSAGE(module,GZ_MESSAGE_ASSERT,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
 

Definition at line 398 of file gzDebug.h.

#define gzModuleAssertText_ module,
test,
text   )     gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(module,GZ_MESSAGE_ASSERT,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
 

Definition at line 385 of file gzDebug.h.

#define gzModuleLevelAssert module,
level,
test   )     try{if(!(test))GZMESSAGE(module,level,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
 

Definition at line 403 of file gzDebug.h.

#define gzModuleLevelAssert_ module,
level,
test   )     gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(module,level,"Assert (%s) at line %ld in file "__FILE__,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
 

Definition at line 390 of file gzDebug.h.

#define gzModuleLevelAssertText module,
level,
test,
text   )     try{if(!(test))GZMESSAGE(module,level,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}
 

Definition at line 404 of file gzDebug.h.

#define gzModuleLevelAssertText_ module,
level,
test,
text   )     gzBool GZ_VAR_LINE(_test_);GZ_VAR_LINE(_test_)=(gzBool)!(test);if(GZ_VAR_LINE(_test_))try{GZMESSAGE(module,level,"Assert '%s' (%s) at line %ld in file "__FILE__,text,#test,__LINE__);}catch(gzBaseError &err){GZBRKTST}if(GZ_VAR_LINE(_test_))
 

Definition at line 391 of file gzDebug.h.

#define GZTR sender,
 )     gzMessage::translate(sender,x)
 

Short Macro for message translation of general messages;.

Definition at line 270 of file gzDebug.h.

#define GZTRACE   gzTrace::NoTraceMessage
 

Definition at line 97 of file gzDebug.h.

#define GZTRACES   gzTrace::NoTraceMessageSender
 

Definition at line 98 of file gzDebug.h.


Enumeration Type Documentation

enum gzDebugFlags
 

Debug flags used in the debug method to select output.

You can examine tree structures etc. by using the debug() command

Enumerator:
GZ_DEBUG_OFF 
GZ_DEBUG_SHOW_ALL 

Definition at line 67 of file gzDebug.h.

enum gzMessageEncoding
 

Enumerator:
GZ_MESSAGE_ENCODING_UTF8 
GZ_MESSAGE_ENCODING_ASCII 
GZ_MESSAGE_ENCODING_NO_TRANSLATE 
GZ_MESSAGE_ENCODING_NO_FORMAT 

Definition at line 123 of file gzDebug.h.

enum gzMessageLevel
 

Debug output levels.

You can add your own levels by adding offset values to the base level. e.g. My_MESSAGE_DEBUG_LEVEL = GZ_MESSAGE_DEBUG+1;

Add gzMessageEncoding to the level to set various formats in string

Enumerator:
GZ_MESSAGE_MEM_DEBUG 
GZ_MESSAGE_PERF_DEBUG 
GZ_MESSAGE_DEBUG 
GZ_MESSAGE_TRACE_DEBUG 
GZ_MESSAGE_NOTICE 
GZ_MESSAGE_WARNING 
GZ_MESSAGE_FATAL 
GZ_MESSAGE_ASSERT 
GZ_MESSAGE_ALWAYS 
GZ_MESSAGE_LEVEL_MASK 

Definition at line 108 of file gzDebug.h.

enum gzMessageType
 

Enumerator:
GZ_MESSAGE_API_INTERNAL 

Definition at line 130 of file gzDebug.h.


Function Documentation

GZ_USE_BIT_LOGIC gzDebugFlags   ) 
 

GZ_USE_BIT_LOGIC_MIX gzMessageLevel  ,
gzMessageType 
 

GZ_USE_BIT_LOGIC_MIX gzMessageLevel  ,
gzMessageEncoding 
 

Define the gzMessageLevel as a combined set with gzMessageEncoding and gzMessageType.


Documentation for Gizmo3D generated at Wed Feb 20 11:54:13 2008 by   Saab Training Systems AB, ¸ (c) 2003-and beyond