Namespaces
Variants

std:: breakpoint

From cppreference.net
Определено в заголовке <debugging>
void breakpoint ( ) noexcept ;
(начиная с C++26)

Безусловная точка останова: Пытается временно остановить выполнение программы и передать управление отладчику, независимо от того, можно ли обнаружить наличие отладчика. Поведение этой функции определяется реализацией.

Содержание

Примечания

Цель этой функции — обеспечить управление точками останова во время выполнения, выходящее за рамки возможностей отладчика, без завершения программы. Например, останов при обнаружении редкого некритического условия, программное управление со сложными условиями, зависящими от времени выполнения, останов по пользовательскому вводу для проверки контекста в интерактивных программах без необходимости переключения на приложение отладчика и т.д.

Эта функция стандартизирует множество существующих аналогичных средств: __builtin_debugtrap из LLVM, __debugbreak из Win32 API, debugger_break из boost.test , assert ( false ) , _asm { int 3 } (MSVC) и asm ( "int3" ) (GCC/clang) для x86 целей, и т.д. .

Макрос тестирования возможностей Значение Стандарт Функция
__cpp_lib_debugging 202311L (C++26) Библиотека поддержки отладки
202403L (C++26) Заменяемый std::is_debugger_present

Пример

Смотрите также

проверяет, выполняется ли программа под управлением отладчика
(функция)
вызывает std::breakpoint если std::is_debugger_present возвращает true
(функция)

Внешние ссылки

1. armKEIL: __breakpoint intrinsic
2. Portable Snippets: Отладочные утверждения и ловушки
3. EASTL: EASTL_DEBUG_BREAK
4. Catch2: CATCH_TRAP и 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