std::breakpoint
|
在标头
<debugging> 定义 |
||
|
void breakpoint() noexcept;
|
(C++26 起) | |
无条件断点:尝试暂时停止程序的执行,并将控制权转移到调试器,而无论是否可以检测到调试器的存在。该函数的行为由实现定义。
注解
该功能的目的是在不导致程序退出的情况下,允许对调试器无法提供的断点进行运行时控制。例如,在检测到不常见的非关键条件时断点,允许对复杂的运行时敏感条件进行编程控制,在用户输入时中断以检查交互式程序中的上下文,而无需切换到调试器应用程序等。
该函数将许多类似的现有功能标准化:LLVM 的 __builtin_debugtrap,Win32 API 的 __debugbreak,boost.test 的 debugger_break,assert(false),针对 x86 目标的 _asm { int 3 }(MSVC)和 asm("int3")(GCC/clang),等等。
| 功能特性测试宏 | 值 | 标准 | 功能特性 |
|---|---|---|---|
__cpp_lib_debugging |
202311L | (C++26) | 调试支持库 |
| 202403L | (C++26) | 可替换的 std::is_debugger_present |
示例
| 本节未完成 原因:暂无示例 |
参阅
|
(C++26)
|
检查程序是否在调试器的控制下运行 (函数) |
|
(C++26)
|
如果 std::is_debugger_present 返回 true 则调用 std::breakpoint (函数) |
外部链接
| 1. | armKEIL: __breakpoint intrinsic |
| 2. | Portable Snippets: Debugging assertions and traps |
| 3. | EASTL: EASTL_DEBUG_BREAK |
| 4. | Catch2: CATCH_TRAP and 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 |