Scroll to navigation

std::breakpoint(3) C++ Standard Libary std::breakpoint(3)

NAME

std::breakpoint - std::breakpoint

Synopsis


Defined in header <debugging>
void breakpoint() noexcept; (since C++26)


Unconditional breakpoint: attempts to temporarily halt the execution of the program
and transfer control to the debugger whether or not it's not possible to determine
if the debugger is present.


Formally, the behavior of this function is completely implementation-defined.

Notes


The intent of this function is allowing for runtime control of breakpoints beyond
what might be available from a debugger while not causing the program to exit. For
example, breaking when an infrequent non-critical condition is detected, allowing
programmatic control with complex runtime sensitive conditions, breaking on user
input to inspect context in interactive programs without needing to switch to the
debugger application, etc.


This function standardizes many similar existing facilities: __builtin_debugtrap
from LLVM, __debugbreak from Win32 API, debugger_break from boost.test,
assert(false), _asm { int 3 } (MSVC) and asm("int3") (GCC/clang) for x86 targets,
etc.


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

Example


This section is incomplete
Reason: no example

See also


is_debugger_present checks whether a program is running under the control of a
(C++26) debugger
(function)
breakpoint_if_debugging calls std::breakpoint if std::is_debugger_present returns
(C++26) true
(function)

External links


1. armKEIL: __breakpoint intrinsic
2. Portable Snippets: Debugging assertions and traps
3. EASTL: EASTL_DEBUG_BREAK
4. Catch2: CATCH_TRAP and CATCH_BREAK_INTO_DEBUGGER
5. Unreal Engine: DebugBreak
6. JUCE: JUCE_BREAK_IN_DEBUGGER
7. Dear ImGui: IM_DEBUG_BREAK
8. AWS C Common: aws_debug_break

Category:


* Todo no example

2024.06.10 http://cppreference.com