Namespaces
Variants

std:: breakpoint

From ja.cppreference.net
ヘッダーで定義 <debugging>
void breakpoint ( ) noexcept ;
(C++26以降)

無条件ブレークポイント: デバッガの検出可否に関わらず、プログラムの実行を一時停止し、制御をデバッガに渡そうと試みます。この関数の動作は実装定義です。

目次

注記

この関数の意図は、デバッガから利用可能なブレークポイント機能を超えた実行時制御を、プログラムを終了させることなく可能にすることです。例えば、まれに発生する重要な条件ではない状況を検出した際にブレークする、複雑な実行時依存条件を伴うプログラム制御を可能にする、対話型プログラムにおいてデバッガアプリケーションに切り替えることなくユーザー入力を基にコンテキストを検査する、などに利用できます。

この関数は、既存の多くの類似機能を標準化します:LLVMの__builtin_debugtrap、Win32 APIのDebugBreak()、Microsoft固有のC/C++拡張__debugbreak、debugger_break(boost.test)、assert(false)、x86ターゲット向け_asm { int 3 }(MSVC)とasm("int3")(GCC/clang)、など。

機能テストマクロ 値 標準 機能
__cpp_lib_debugging 202311L (C++26) デバッグサポートライブラリ
202403L (C++26) 置換可能なstd::is_debugger_present

例

関連項目

プログラムがデバッガーの制御下で実行されているかどうかをチェックする
(関数)
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