libcwdversion 2.0.0
The C++ Debugging Support Library
Loading...
Searching...
No Matches

Printing a fatal message and terminating the application. More...

Macros

#define DoutFatal(cntrl, ...)
 Macro for writing fatal debug output to the default debug object libcw_do .

Detailed Description

Often an application needs to be terminated when a fatal error occurs (whether or not CWDEBUG is defined). Libcwd defines for these cases the macro DoutFatal.

This allows you to write

if (error)
DoutFatal(dc::core|error_cf, "An error occurred");
#define DoutFatal(cntrl,...)
Macro for writing fatal debug output to the default debug object libcw_do .
Definition debug.h:119

instead of the equivalent

if (error)
{
Dout(dc::core|error_cf, "An error occurred");
std::cerr << "An error occurred" << std::endl;
_Exit(180);
}
#define Dout(cntrl,...)
Macro for writing debug output.
Definition debug.h:97

The big difference with Dout is that DoutFatal is not replaced with white space when the macro CWDEBUG is not defined.

There are two debug channels that can be used together with DoutFatal: dc::fatal and dc::core. The first terminates by calling _Exit(180), the second terminates by std::abort(), causing the application to core dump.

See also
Predefined Debug Channels
Control Flags
Defining your own debug objects