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) | Библиотека поддержки отладки |
Пример
См. также
|
(C++26) |
проверяет, запускается ли программа под управлением отладчика (функция) |
|
(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