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 |