std:: breakpoint
|
定义于头文件
<debugging>
|
||
|
void
breakpoint
(
)
noexcept
;
|
(C++26 起) | |
无条件断点:尝试临时停止程序执行并将控制权传递给调试器,无论是否能够检测到调试器的存在。此函数的行为由具体实现定义。
目录 |
注释
此函数的目的是在程序不退出的前提下,提供调试器功能之外的运行时断点控制能力。例如:在检测到偶发的非关键性条件时中断执行,通过复杂的运行时敏感条件实现程序化控制,在交互式程序中根据用户输入中断以检查上下文而无需切换至调试器应用程序等。
此函数标准化了许多现有的类似功能:LLVM中的
__builtin_debugtrap
、Win32 API中的
__debugbreak
、
boost.test
中的
debugger_break
、
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::is_debugger_present
返回
true
时调用
std::breakpoint
(函数) |
外部链接
| 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
|