ブレークポイント
ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。 これにより、プログラムの状態と動作を調べることができます。 ブレークポイントは、たとえば、特定のコード行に到達したときにプログラムを一時停止するなどの単純なものから、 追加の条件をチェックしたり、 ログに書き込んだりするなどのより複雑なロジックを含むものまであります。
ブレークポイントは、一度設定すると、 一時的なブレークポイントを除き、明示的に削除するまでプロジェクト内に残ります。
ブレークポイントの種類
RubyMine で利用できるブレークポイントの種類は次のとおりです:
行ブレークポイント: ブレークポイントが設定されたコード行に到達したらプログラムを中断します。 このタイプのブレークポイントは、実行可能なコード行に設定できます。
例外のブレークポイント: 指定された例外がスローされたときにプログラムを一時停止します。 これらは例外条件にグローバルに適用され、特定のソースコード参照を必要としません。
ブレークポイントの設定方法
行ブレークポイントを設定する
ブレークポイントを設定するコードの実行可能な行でガターをクリックします。 または、行にキャレットを置き、 Ctrl+F8 を押します。

一時的な行ブレークポイントを設定するには、 Ctrl+Alt+Shift+F8 を押します。 または、 Alt を押したままガターをクリックします。 このブレークポイントは、ヒットするとすぐにプロジェクトから削除されます。
例外ブレークポイントを設定する
Ctrl+Shift+F8 を押すか、メインメニューから を選択します。
ブレークポイント ダイアログで、 Alt+Insert を押すか
をクリックし、 Ruby 例外ブレークポイント または JavaScript 例外ブレークポイント を選択します。

例外クラスの選択 ダイアログで、ライブラリまたはプロジェクトから例外クラスを指定します。
ブレークポイントの管理
ブレークポイントを削除する
例外以外のブレークポイントの場合: ガターのブレークポイントをクリックします。
すべてのブレークポイントの場合: メインメニューの Ctrl+Shift+F8 に移動し、ブレークポイントを選択して、 削除 をクリックするか、 Delete を押します。
誤ってブレークポイントを削除してそのパラメーターを失うのを防ぐために、エディターにドラッグするか、マウスの中央ボタンをクリックして、ブレークポイントを削除することを選択できます。 これを行うには、 に移動して エディターにドラッグするか、マウスの中ボタンでクリックする を選択します。 ブレークポイントをクリックすると、それが 有効または無効になります。
ブレークポイントのミュート
ブレークポイントでしばらく停止する必要がない場合は、 ミュートできます。 これにより、デバッガーセッションを移動することなく、通常のプログラム操作を再開できます。 その後、ブレークポイントのミュートを解除して、デバッグを続行できます。
Debug ツールウィンドウのツールバーの ブレークポイントのミュート ボタン
をクリックします。
ブレークポイントを使用可能 / 使用不可にする
ブレークポイントを削除すると、その 内部構成は失われます。 パラメーターを失うことなく個々のブレークポイントを一時的にオフにするには、 無効にすることができます。
例外以外のブレークポイントの場合: 右クリックし、必要に応じて 有効化 オプションを設定します。 または、 Alt キーを押しながらブレークポイントをクリックするか、マウスの中ボタンをクリックすることでも設定できます。 マウスの中ボタンにブレークポイントの削除が 割り当てられていないことを確認してください。
すべてのブレークポイントの場合: 実行 | ブレークポイントの表示 Ctrl+Shift+F8 をクリックして、リストのブレークポイントをオン / オフにします。
ブレークポイントの移動 / コピー
ブレークポイントを移動するには、それを別の行にドラッグします。
ブレークポイントをコピーするには、 Ctrl を押したまま、ブレークポイントを別の行にドラッグします。 これにより、宛先に同じパラメーターを持つブレークポイントが作成されます。
設定されたすべてのブレークポイントを表示
Bookmarksツールウィンドウですべてのブレークポイントのリストを表示できます。 ブレークポイントは、コード内に配置すると、ツールウィンドウの専用リストに自動的に追加されます。
メインメニューで、 に移動するか、 Alt+2 を押して ブレークポイント リストを展開します。

ブレークポイントのグループ化
たとえば、特定の問題に対してブレークポイントを区別したい場合、グループ分けできます。
ブレークポイント ダイアログ Ctrl+Shift+F8 で、グループに配置するブレークポイントを選択し、メニューから を選択します。
ブレークポイントのプロパティを構成する
ブレークポイントのタイプに応じて、特定のニーズに合わせて操作を調整できる追加のプロパティを構成できます。 最も使用されるオプションは、 インテンションを介して利用できます。
ブレークポイントインテンションにアクセスするには、ブレークポイントのある行にキャレットを置き、 Alt+Enter を押します。 このオプションは、基本的なブレークポイントプロパティをすばやく設定する必要がある場合に使用します。

プロパティの完全なリストにアクセスするには、ブレークポイントを右クリックして 詳細 をクリックするか、 Ctrl+Shift+F8 を押します。
インテンションリファレンス
ブレークポイントのプロパティリファレンス
この章では、ブレークポイントで利用できる機能についてご案内します。
有効化
プロジェクトから削除せずに一時的にブレークポイントを無効にするには、チェックボックスをオフにします。 無効化されたブレークポイントは、 ステップ実行中にスキップされます。
RubyMine を構成して、クリック時にブレークポイントを完全に削除するかわりに有効化/無効化できるようにできます。 これを行うには、 に移動し、 ブレークポイントの除去 オプションを エディターにドラッグまたはマウスの中央ボタンをクリック に設定します。
実行の中断
ブレークポイントがヒットしたときにプログラム実行を一時停止するかどうかを指定します。
非中断ブレークポイントは、プログラムを一時停止せずに何らかの式をログに記録する必要がある場合 (たとえば、メソッドが何回呼び出されたかを知る必要がある場合)、またはヒット時に 依存するブレークポイントを有効にする トリガーブレークポイントを作成する必要がある場合に役立ちます。
条件
このオプションは、ブレークポイントに到達するたびにチェックされる条件を指定するために使用されます。 条件は、 true または false に評価される Ruby ブール式です(例: @user.name == "Example User")。 条件が true と評価された場合、選択されたアクションが実行されます。 それ以外の場合、ブレークポイントは無視されます。
式の結果は、return ステートメントから取得されます。 return ステートメントがない場合、結果はコードの最後の行から取得されます。
式を評価するときは、副作用が発生し、プログラムの動作や結果に影響する可能性があることを認識してください。
ログオプション
ブレークポイントに到達すると、次の内容がコンソールに記録されます:
"Breakpoint hit" メッセージ:
Breakpoint reached at ocean.Whale.main(Whale.java:5)のようなログメッセージ。スタックトレース: 現在のフレームのスタックトレース。 これは、プログラムの実行を中断することなく、このポイントに至ったパスを確認する場合に役立ちます。
評価して記録: 任意の式の結果。
式の結果は、return ステートメントから取得されます。 return ステートメントがない場合、結果はコードの最後の行から取得されます。これは式でなくてもよく、リテラルでも問題ありません。 これにより、カスタムメッセージを生成したり、プログラム実行中に値のトラックとして利用することができます。
式を評価するときは、副作用が発生し、プログラムの動作や結果に影響する可能性があることを認識してください。
ログブレークポイントを設定する
(オプション) ログに記録する式がエディター内の目の前にある場合は、それを選択します。
Shift を押したままガターをクリックします。
一度ヒットしたら除去する
ブレークポイントが一度ヒットした後にプロジェクトから削除するかどうかを指定します。
次のブレークポイントに到達するまで無効化
次のブレークポイントに到達するまで無効化 ボックスでブレークポイントを選択すると、現在のブレークポイントのトリガーとして機能します。 これにより、指定したブレークポイントに到達するまで現在のブレークポイントが 無効になります。
これが発生した後に再び無効化するか、有効化したままにするかを選択できます。
このオプションは、特定の条件下または特定のアクションの後でのみプログラムを中断する必要がある場合に役立ちます。 この場合、通常、トリガーブレークポイントはプログラムの実行を停止するために必要ではなく、 non-suspending になります。
ブレークポイントのステータス
ブレークポイントには以下のステータスがあります:
ステータス | 説明 |
|---|---|
検証済み | デバッガーセッションを開始した後、デバッガーはプログラムをブレークポイントで一時停止することが技術的に可能かどうかをチェックします。 はいの場合、デバッガーはブレークポイントを 検証済みとしてマークします。 |
警告 | ブレークポイントでプログラムを一時停止することが技術的に可能ですが、それに関連する問題がある場合、デバッガーはブレークポイントのステータスを 警告に設定します。 これは、たとえば、メソッドの実装の 1 つでプログラムを一時停止することが不可能な場合に発生することがあります。 |
無効 | ブレークポイントでプログラムを一時停止することが技術的に不可能な場合、デバッガーはそれを 無効としてマークします。 これは、その行に実行可能なコードがないためよく発生します。 |
非アクティブ / 依存 | ブレークポイントは、 別のブレークポイントにヒットするまで無効になるように構成されている場合、非アクティブ / 依存としてマークされますが、これはまだ発生していません。 |
ミュート | すべてのブレークポイントは ミュートされているため、一時的に非アクティブです。 |
無効 | それはされているため、このブレークポイントが一時的にアクティブで 無効。 |
中断しない | このブレークポイントには 中断ポリシーが設定されているため、ヒットしたときに実行が中断されることはありません。 |
ブレークポイントアイコン
タイプと ステータスに応じて、ブレークポイントは次のアイコンでマークされます。
行 | 例外 | |
|---|---|---|
標準 | ||
無効 | ||
検証済み | ||
ミュート | ||
非アクティブ / 依存 | ||
ミュート無効 | ||
中断しない | ||
確認済みの一時停止なし | ||
無効 |
生産性のヒント
- "printf" デバッグ用にブレークポイントを利用する
コードに print ステートメントを追加する代わりに、 非サスペンド ログ用ブレークポイント(デバッガーによってはウォッチポイントと呼ばれることもあります)を利用してください。 これにより、デバッグログメッセージをより柔軟かつ一元的に処理することができます。
- ログ用ブレークポイントを素早く設定する
非停止 ログブレークポイントを設定するには、 Shift を押しながらガターをクリックします。 これによりプログラムの実行は一時停止されず、代わりに
Breakpoint reachedのようなメッセージが記録されます。 エディターで目の前にある式をログ出力したい場合は、 Shift を押しながらガターをクリックする前に選択してください。- ブレークポイントの説明を追加する
プロジェクト内に多くのブレークポイントがある場合、検索を容易にするため説明を追加できます。 これを行うには、 ブレークポイント ダイアログ Ctrl+Shift+F8 でブレークポイントを右クリックし、メニューから 説明の編集 を選択します。 今後はブレークポイント名を入力し始めると、その項目にフォーカスが移ります。
- ソースに移動
ブレークポイント ダイアログから選択したブレークポイントが設定されているコード行に移動するには、 F4 を押します。