std::breakpoint
From cppreference.com
| ヘッダー <debugging> で定義 |
||
| void breakpoint() noexcept; |
(C++26以降) | |
無条件ブレークポイント: デバッガの存在を検出できるかどうかにかかわらず、プログラムの実行を一時停止し、デバッガに制御を渡そうとします。この関数の動作は実装定義です。
目次 |
[編集] 注釈
この関数の意図は、デバッガで利用可能なもの以上のブレークポイントの実行時制御を、プログラムを終了させることなく可能にすることです。例えば、まれな非クリティカルな条件が検出されたときにブレークする、複雑な実行時感応条件でのプログラムによる制御を可能にする、対話型プログラムでデバッガアプリケーションに切り替える必要なくコンテキストを検査するためにユーザー入力を待ってブレークする、などです。
この関数は、多くの類似した既存の機能(LLVMの__builtin_debugtrap、Win32 APIの__debugbreak、boost.testのdebugger_break、assert(false)、MSVCの_asm { int 3 }、x86ターゲットのGCC/clangのasm("int3")、など)を標準化します。
| 機能テストマクロ | 値 | 規格 | 機能 |
|---|---|---|---|
__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: デバッグアサーションとトラップ |
| 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 |