# Poco

# class Debugger

Library: Foundation
Package: Core
Header: Poco/Debugger.h

## Description

The Debugger class provides an interface to the debugger. The presence of a debugger can be checked for, messages can be written to the debugger's log window and a break into the debugger can be enforced. The methods only work if the program is compiled in debug mode (the macro _DEBUG is defined).

## Member Summary

Member Functions: enter, isAvailable, message, sourceFile

## Member Functions

### enter

static void enter();

Breaks into the debugger, if it is available. On Windows, this is done using the DebugBreak() function. On Unix, the SIGINT signal is raised.

### enter

static void enter(
const std::string & msg
);

Writes a debug message to the debugger log and breaks into it.

### enter

static void enter(
const std::string & msg,
const char * file,
LineNumber line
);

Writes a debug message to the debugger log and breaks into it.

### enter

static void enter(
const char * file,
LineNumber line
);

Writes a debug message to the debugger log and breaks into it.

### isAvailable

static bool isAvailable();

Returns true if a debugger is available, false otherwise. On Windows, this function uses the IsDebuggerPresent() function. On Unix, this function returns true if the environment variable POCO_ENABLE_DEBUGGER is set.

### message

static void message(
const std::string & msg
);

Writes a message to the debugger log, if available, otherwise to standard error output.

### message

static void message(
const std::string & msg,
const char * file,
LineNumber line
);

Writes a message to the debugger log, if available, otherwise to standard error output.

### sourceFile

static constexpr std::string_view sourceFile(
const std::string_view & fileName
);

Utility function for reporting the source file name. The file path is truncated and only the source file name (with extension) is returned.

For full location reporting (including function name and line number), see `poco_src_loc` macro.