QuantLib: Debugging macros

A free/open-source library for quantitative finance Reference manual - version 1.6

- Main Page
- Related Pages
- Modules
- Classes
- Examples

Macros
Debugging macros
QuantLib macros

## Macros
#define | QL_TRACE_ENABLE
| enable tracing More...
#define | QL_TRACE_DISABLE
| disable tracing More...
#define | QL_TRACE_ON(out)
| set tracing stream More...
#define | QL_TRACE(message)
| output tracing information More...
#define | QL_TRACE_ENTER_FUNCTION
| output tracing information More...
#define | QL_TRACE_EXIT_FUNCTION
| output tracing information More...
#define | QL_TRACE_LOCATION
| output tracing information More...
#define | QL_TRACE_VARIABLE(variable)
| output tracing information More...

## Detailed Description

For debugging purposes, macros can be used to output information about the code being executed.

## Macro Definition Documentation

#define QL_TRACE_ENABLE

enable tracing

The statement

1 QL_TRACE_ENABLE;

can be used to enable tracing. Such statement might be ignored; refer to QL_TRACE for details.

Examples:
  tracing_example.cpp.

#define QL_TRACE_DISABLE

disable tracing

The statement

1 QL_TRACE_DISABLE;

can be used to disable tracing. Such statement might be ignored; refer to QL_TRACE for details.

#define QL_TRACE_ON | ( |  | out | ) |

set tracing stream

The statement

1 QL_TRACE_ON(stream);

can be used to set the stream where tracing messages are output. Such statement might be ignored; refer to QL_TRACE for details.

#define QL_TRACE | ( |  | message | ) |

output tracing information

The statement

1 QL_TRACE(message);

can be used to output a trace of the code being executed. If tracing was disabled during configuration, such statements are removed by the preprocessor for maximum performance; if it was enabled, whether and where the message is output depends on the current settings.

Examples:
  tracing_example.cpp.

#define QL_TRACE_ENTER_FUNCTION

output tracing information

The statement

1 QL_TRACE_ENTER_FUNCTION;

can be used at the beginning of a function to trace the fact that the program execution is entering such function. It should be paired with a corresponding QL_TRACE_EXIT_FUNCTION macro. Such statement might be ignored; refer to QL_TRACE for details. Also, function information might not be available depending on the compiler.

Examples:
  tracing_example.cpp.

#define QL_TRACE_EXIT_FUNCTION

output tracing information

The statement

1 QL_TRACE_EXIT_FUNCTION;

can be used before returning from a function to trace the fact that the program execution is exiting such function. It should be paired with a corresponding QL_TRACE_ENTER_FUNCTION macro. Such statement might be ignored; refer to QL_TRACE for details. Also, function information might not be available depending on the compiler.

Examples:
  tracing_example.cpp.

#define QL_TRACE_LOCATION

output tracing information

The statement

1 QL_TRACE_LOCATION;

can be used to trace the current file and line. Such statement might be ignored; refer to QL_TRACE for details.

Examples:
  tracing_example.cpp.

#define QL_TRACE_VARIABLE | ( |  | variable | ) |

output tracing information

The statement

1 QL_TRACE_VARIABLE(variable);

can be used to trace the current value of a variable. Such statement might be ignored; refer to QL_TRACE for details. Also, the variable type must allow sending it to an output stream.

Examples:
  tracing_example.cpp.