ML Reference
mlDebug.h File Reference
#include "mlErrorOutput.h"
#include "mlErrorOutputInfos.h"

Go to the source code of this file.

Macros

Macros to print debug information.

Defines all ML debug, tracing, and error handling macros.

Debug printing is controllable in and by the ML, and there are some constructs for selective debug printing. The required files are automatically included if using the standard ML include file mlModuleIncludes.h. The ML controls debug printing by the instance MLErrorOutput of the class ErrorOutput (from Project mlUtils). There, the configuration of debug outputs and the error handling system takes place. However, you should not use this instance or class directly. Better use the CoreControl module, which makes the important settings available (if that is possible by an, e.g., application like MeVisLab). There, debug printing can be enabled/disabled for the entire ML and debugging can be enabled/disabled for certain classes by the use of environment variables/debug symbols.

The following macros are currently available to be inserted in program code:

Normally, each debug output is related to a debug symbol, which must be enabled in the ML before the debug information can be printed.

Such a debug symbol can be defined as:

  • an environment variable before the ML or the application is started,
  • as a debug symbol in the CoreControl module when used in an application like MeVisLab, or
  • directly via programming in the global MLErrorOutput instance of the ML.

The third way, however, should only be used in modules dedicated for debug control or diagnostics and not in normal code.

All debug macros are not compiled in release mode to improve performance and to reduce the amount of code generated.

If debugging is enabled and the related debug symbol (or environment variable) for the macro is defined, then any of the debug macros will sent the

  • file name,
  • time stamp,
  • line number,
  • the debug symbo, and
  • the passed macro parameter COUTS

to the global instance MLErrorOutput of the ML. That instance then will sent this information to all registered instances, e.g., the modules MLConsole, MLLogFile, and application consoles in MeVisLab.

#define _mlDebugConst(ENV_VAR, COUTS)
 Private macro to print debug information. More...
 
#define mlDebugConst(ENV_VAR, COUTS)   _mlDebugConst(ENV_VAR, COUTS)
 Public macro to be used instead of print debug information. More...
 
#define mlDebug(COUTS)
 This macro prints debug information given by COUTS. More...
 
#define mlDebugConditional(COND_SYM, COUTS)
 Macro to specify subsets of debug outputs for a debug symbol which is given by the runtime type of the class. More...
 
#define mlDebugPrint(COUTS)   _mlDebugConst(ML_DEBUG_ENV_NAME, COUTS)
 Macro for printing debug information. More...
 
#define mlDebugClass(CLASS_NAME, COUTS)
 Macro for printing debug information. More...
 

Macro Definition Documentation

◆ _mlDebugConst

#define _mlDebugConst (   ENV_VAR,
  COUTS 
)

Private macro to print debug information.

It should not be used by programmers directly. See header documentation for more information about debug printing.

Definition at line 102 of file mlDebug.h.