Spec-Zone.ru › C++

std::breakpoint

Defined in header <debugging>
void breakpoint() noexcept;
(since 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) Библиотека поддержки отладки

Пример

См. также

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

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

1. armKEIL: __breakpoint intrinsic
2. Переносимые фрагменты кода: Отладка утверждений и ловушек
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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/breakpoint

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API