Namespaces
Variants

std:: breakpoint

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

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

Содержание

Примечания

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

Эта функция стандартизирует множество существующих аналогичных средств: __builtin_debugtrap из LLVM, DebugBreak() из Win32 API, __debugbreak расширение C/C++ от Microsoft, 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