AppCode 2023.1 ヘルプ

ブレークポイント

ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。これにより、プログラムの状態と動作を調べることができます。ブレークポイントは、単純な場合(たとえば、コード行に到達したときにプログラムを一時停止する場合)や、より複雑なロジック(追加の条件に対するチェック、ログメッセージの書き込みなど)を伴う場合があります。

設定したブレークポイントは、一時的なブレークポイントを除いて、明示的に削除するまでプロジェクトに残ります)。

ブレークポイントの種類

AppCode では、次のタイプのブレークポイントを使用できます。

  • 行ブレークポイント : ブレークポイントが設定されたコード行に到達したらプログラムを中断します。このタイプのブレークポイントは、実行可能なコード行に設定できます。

  • 例外のブレークポイント : NSException (Objective-C の場合)または Error (Swift の場合)またはそれらのサブクラスがスローされたときにプログラムを中断します。これらは例外条件にグローバルに適用され、特定のソースコード参照を必要としません。

  • シンボル的なブレークポイント : 特定の関数またはメソッドが実行されたときにプログラムを中断します。

ブレークポイントの設定

行ブレークポイントを設定する

  • ブレークポイントを設定するコードの実行可能な行でガターをクリックします。または、行にキャレットを置き、Ctrl+F8 を押します。

    Line breakpoint

例外ブレークポイントを設定する

  1. デバッグツールウィンドウの左側のブレークポイントの表示 View Breakpoints button をクリックするか、Ctrl+Shift+F8 を押します。

  2. ブレークポイントダイアログで、Alt+Insert を押すか the Add button をクリックし、例外のブレークポイントまたは JavaScript 例外ブレークポイントを選択します。

  3. 例外のブレークポイントの場合、プログラムを一時停止するタイミングを指定できます。例外がスローされたとき(任意)、または未処理の Objective-C 例外(Objective-C)または Swift エラーが発生したとき(Swift)です。

    When any exception is thrown option

シンボリックブレークポイントを設定する

  1. デバッグツールウィンドウの左側のブレークポイントの表示 View Breakpoints button をクリックするか、Ctrl+Shift+F8 を押します。

  2. ブレークポイントダイアログで、Alt+Insert を押すか the Add button をクリックし、シンボリックブレークポイントを選択します。

  3. シンボル名を指定し、このブレークポイントをすべてのモジュールでヒットするか、特定のモジュールのみでヒットするかを選択します。

    Symbolic breakpoint settings

ブレークポイントの管理

ブレークポイントを除去する

  • 行ブレークポイントの場合: ガターのブレークポイントをクリックします。

  • すべてのブレークポイントの場合: メインメニューから実行 | ブレークポイントの表示 Ctrl+Shift+F8 を選択し、ブレークポイントを選択して、除去 Delete をクリックします。

誤ってブレークポイントを削除してそのパラメーターを失うのを防ぐために、エディターにドラッグするか、マウスの中央ボタンをクリックして、ブレークポイントを削除することを選択できます。これを行うには、環境設定 | ビルド、実行、デプロイ | デバッガーに移動してエディターにドラッグまたはマウスの中央ボタンをクリックを選択します。ブレークポイントをクリックすると、それが有効または無効になります。

ブレークポイントのミュート

ブレークポイントでしばらく停止する必要がない場合は、ミュートできます。これにより、デバッガーセッションを移動することなく、通常のプログラム操作を再開できます。その後、ブレークポイントのミュートを解除して、デバッグを続行できます。

  • デバッグツールウィンドウのツールバーのブレークポイントのミュートボタン Mute Breakpoints button をクリックします。

ブレークポイントを使用可能 / 使用不可にする

ブレークポイントを削除すると、その内部構成は失われます。パラメーターを失うことなく個々のブレークポイントを一時的にオフにするには、無効にすることができます。

  • 行ブレークポイントの場合: 右クリックして、必要に応じて有効オプションを設定します。ブレークポイントの削除が割り当てられていない場合は、マウスの中ボタンで切り替えることもできます。

  • すべてのブレークポイントの場合: ブレークポイントの表示 Ctrl+Shift+F8 をクリックして、リストのブレークポイントをオン / オフにします。

ブレークポイントの移動 / コピー

  • ブレークポイントを移動するには、それを別の行にドラッグします。

  • ブレークポイントをコピーするには、Ctrl を押したまま、ブレークポイントを別の行にドラッグします。これにより、宛先に同じパラメーターを持つブレークポイントが作成されます。

ブレークポイントのプロパティを構成する

ブレークポイントのタイプに応じて、特定のニーズに合わせて操作を調整できる追加のプロパティを構成できます。最も使用されるオプションは、インテンションを介して利用できます。

  • ブレークポイントインテンションにアクセスするには、ブレークポイントのある行にキャレットを置き、Alt+Enter を押します。このオプションは、基本的なブレークポイントプロパティをすばやく設定する必要がある場合に使用します。

  • プロパティの完全なリストにアクセスするには、ブレークポイントを右クリックして詳細をクリックするか、Ctrl+Shift+F8 を押します。このオプションは、すべてのブレークポイントの鳥瞰図とその構成の完全な制御に使用します。

インテンションリファレンス

インテンション

説明

ブレークポイントの除去

選択した行のブレークポイントを削除します。

ブレークポイントの無効化

選択した行のブレークポイントを無効にします。

ブレークポイントの編集

最もよく使用されるブレークポイントプロパティを含むダイアログを開きます。その他のプロパティについては、詳細をクリックするか Ctrl+Shift+F8 を押します。

ブレークポイントのプロパティ

オプション

説明

ブレークポイントの種類

有効

プロジェクトから削除せずに一時的にブレークポイントを無効にするには、チェックボックスをオフにします。無効にされたブレークポイントは、デバッグプロセス中にスキップされます。

すべてのタイプ

中断

チェックボックスを選択すると、ブレークポイントに達したときにプログラムの実行が一時停止します。アプリケーションを一時停止すると、ログ情報を取得したり、特定の時点でプログラムを中断することなく式を計算したりする必要がある場合に役立ちます。ヒットしたときに依存ブレークポイントをトリガーするマスターブレークポイントを作成する必要がある場合は、そのブレークポイントでプログラムを中断しないように選択します。

すべてのタイプ

条件

ブレークポイントを打つための条件を指定するために選択します。条件は、true または false に評価される任意のブール式です。

この式はブレークポイントが設定されている行で有効でなければならず、ブレークポイントがヒットするたびに評価されます。評価結果が true の場合、選択したアクションが実行されます。このフィールドには、複数行の条件式を入力できます。

シンボリック

ログ

次のイベントをコンソールに記録するかどうかを選択します。

  • "ブレークポイントヒット" メッセージ : ブレークポイントに達すると、ログメッセージがコンソール出力に表示されます。

  • スタックトレース : ブレークポイントに到達すると、そのスタックトレースがコンソールに出力されます。

    これは、プログラムの実行を中断することなく、どのパスがこの時点までに到達したかをチェックしたい場合に役立ちます。

すべてのタイプ

評価して記録

ブレークポイントに到達したときに式を評価し、その結果をコンソール出力に表示する場合に選択します。

シンボリック

一度ヒットしたら除去する

ヒットした直後にプロジェクトからブレークポイントを削除することを選択します。

ブレークポイントに達するまで無効にする

現在のブレークポイントをトリガするブレークポイントを選択してください。そのブレークポイントがヒットするまで、現在のブレークポイントは無効になります。再度無効にするかヒットした後も有効にしておくかを選択することもできます。

すべてのタイプ

未キャッチのみ

キャッチされていない例外でブレークポイントに達したときに通知を受けるように選択します。

JavaScript 例外ブレークポイント

スローされたとき

キャッチされた例外でブレークポイントに達したときにプログラムを中断することを選択します。

  • 任意 : どんな例外でも。

  • Objective-C のみ : Objective-C コードの例外のみ。

  • Swift のみ : Swift エラーのみ。

例外

捕らえられたとき

例外がキャッチされたときにプログラムを中断する場合に選択します。

例外

ブレークポイントのステータス

ブレークポイントには、次のステータスがあります。

状況

説明

検証済み

デバッガーセッションを開始した後、デバッガーはプログラムをブレークポイントで一時停止することが技術的に可能かどうかをチェックします。はいの場合、デバッガーはブレークポイントを検証済みとしてマークします。

警告

ブレークポイントでプログラムを一時停止することが技術的に可能ですが、それに関連する問題がある場合、デバッガーは警告を表示します。これは、たとえば、メソッドの実装の 1 つでプログラムを一時停止することが不可能な場合に発生する可能性があります。

無効

ブレークポイントでプログラムを一時停止することが技術的に不可能である場合、デバッガーはプログラムを無効としてマークします。この最も一般的な原因は、行に実行可能コードがないことです。

非アクティブ / 依存

ブレークポイントは、別のブレークポイントに到達するまで無効になるように構成されている場合、非アクティブ / 依存としてマークされますが、これはまだ発生していません。

ミュート

すべてのブレークポイントはミュートされているため、一時的に非アクティブです。

無効

それはされているため、このブレークポイントが一時的にアクティブで無効

中断しない

このブレークポイントには中断ポリシーが設定されているため、ヒットしたときに実行が中断されることはありません。

ブレークポイントアイコン

タイプステータスに応じて、ブレークポイントは次のアイコンでマークされます。

シンボリック

例外

標準

line breakpoint

method breakpoint

exception breakpoint

無効

disabled line breakpoint

disabled method breakpoint

disabled exception breakpoint

検証済み

verified line breakpoint

verified method breakpoint

ミュート

muted line breakpoint

muted method breakpoint

非アクティブ / 依存

inactive/dependent line breakpoint

inactive/dependent method breakpoint

ミュート無効

muted disabled line breakpoint

muted disabled method breakpoint

中断しない

non-suspending line breakpoint

non-suspending method breakpoint

確認済みの一時停止なし

verified non-suspending line breakpoint

verified non-suspending method breakpoint

無効

invalid breakpoint

生産性のヒント

デバッグ印刷にブレークポイントを使用する

コードに出力ステートメントを挿入する代わりに、non-suspending ログブレークポイント(他のデバッガーではウォッチポイントと呼ばれることもあります)を使用します。これにより、デバッグログメッセージを処理する、より柔軟で集中化された方法が提供されます。

ロギングブレークポイントをより迅速に設定する

non-suspending ロギングブレークポイントを設定するには、Shift を押しながらガターをクリックします。これはプログラムの実行を中断せず、代わりに Breakpoint reached: MyClass.swift:36 のようなメッセージを記録します。エディターの前にある式をログに記録する場合は、Shift を押しながらガターをクリックする前に、式を選択します。

ブレークポイントの説明を追加する

プロジェクトに多数のブレークポイントがある場合、検索を容易にするためにブレークポイントに説明を追加できます。これを行うには、ブレークポイントダイアログ Ctrl+Shift+F8 のブレークポイントを右クリックし、メニューから説明の編集を選択します。これで、ブレークポイント名の入力を開始すると、フォーカスが取得されます。

ブレークポイントのグループ化

たとえば、特定の問題のブレークポイントをマークアウトする必要がある場合、ブレークポイントをグループに編成できます。これを行うには、ブレークポイントダイアログ Ctrl+Shift+F8 で、グループに配置するブレークポイントを選択し、メニューからグループに移動を選択します。

並行性の問題についてプログラムをテストする

マルチスレッドプログラムが同時実行性に関して堅牢であるかどうかを確認する良い方法は、ヒット時に 1 つのスレッドのみを一時停止するブレークポイントを使用することです。単一のスレッドを停止すると、アプリケーションの設計上の問題が明らかになる場合がありますが、それ以外の場合は明らかではありません。