Namespaces
Variants
Views
Actions

std::is_debugger_present

From cppreference.com
< cpp‎ | utility
 
 
Utilities library
Language support
Type support (basic types, RTTI)
Library feature-test macros (C++20)
Dynamic memory management
Program utilities
Coroutine support (C++20)
Variadic functions
Debugging support
is_debugger_present
(C++26)
(C++26)
Three-way comparison
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
General utilities
Date and time
Function objects
Formatting library (C++20)
(C++11)
Relational operators (deprecated in C++20)
Integer comparison functions
(C++20)(C++20)(C++20)   
(C++20)
Swap and type operations
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Elementary string conversions
(C++17)
(C++17)

 
Defined in header <debugging>
bool is_debugger_present() noexcept;
(since C++26)

Attempts to determine if the program is being executed with debugger present.

By default, the behavior of this function is completely implementation-defined. A C++ program may provide the definition of this signature to replace the behavior of this function.

Contents

[edit] Return value

The default version returns true if, to the best of its knowledge, the program is executed under a debugger.

[edit] Notes

The intent of this function is allowing printing out extra output to help diagnose problems, executing extra test code, displaying an extra user interface to help in debugging, etc.

This function standardizes many similar existing facilities: under_debugger from boost.test, IsDebuggerPresent() from Win32 API, isDebuggerActive from Catch2, IsDebuggerPresent from Unreal Engine, etc.

Feature-test macro Value Std Feature
__cpp_lib_debugging 202311L (C++26) Debugging support library
202403L (C++26) Replaceable std::is_debugger_present

[edit] Example

[edit] See also

pauses the running program when called
(function) [edit]
calls std::breakpoint if std::is_debugger_present returns true
(function) [edit]