std::breakpoint
Определено в заголовочном файле <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 |
Пример
См. также
|
(C++26) | проверяет, выполняется ли программа под управлением отладчика (функция) |
|
(C++26) | вызывает std::breakpoint, если std::is_debugger_present возвращает true (функция) |
Внешние ссылки
| 1. | armKEIL: встроенная функция __breakpoint |
| 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 |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/breakpoint