RubyMine 2024.3 ヘルプ

中断されたプログラムを調べる

デバッガーセッションが開始されると、デバッグツールウィンドウが表示され、次のいずれかが発生するまでプログラムが正常に実行されます。

その後、プログラムは中断され、現在の状態を調べたり、実行を制御したり、実行時にさまざまなシナリオをテストしたりできます。

フレームを調べる

プログラムの状態はフレームで表されます。プログラムが中断されると、現在のフレームスタックがフレームペインに表示されます。

Stop on a breakpoint

フレームはアクティブなメソッド呼び出しに対応します。呼び出されたメソッドのローカル変数、その引数、式の評価を可能にするコードコンテキストを保存します。

メソッドが呼び出されるたびに、新しいフレームがスタックの一番上に追加されます。メソッドの実行が完了すると、対応するフレームがスタックから削除されます(後入れ先出し方式)。

フレームを調べることで、特定のパラメーターがメソッドに渡された理由と、呼び出し時の呼び出し元の状態を理解できます。

デフォルトでは、RubyMine はフレームワークとライブラリの呼び出しに対応するフレームを非表示にします。

ライブラリからフレームを表示

  • 非表示のフレームを表示するには、フレームペインの右上隅にあるすべてのフレームを表示トグルボタン show Frames from Libraries button を押します。

    The Frames pane with collapsed framework calls and the Show All Frames icon in the top-right corner

フレームをライブラリから非表示

  • プログラムが外部ライブラリを使用していて、ライブラリクラスで行われた呼び出しを省略したい場合は、フレームペインの右上部分にあるフレームをライブラリから非表示ボタン Hide Frames from Libraries button をクリックします。

スタックをクリップボードにコピー

  • 現在のスレッドのコールスタックをコピーするには、フレームペインの任意の場所を右クリックし、スタックをコピーを選択します。

変数の調査 / 更新

変数ペインには、選択したフレーム / スレッド内の変数のリストが表示されます。変数を調べると、プログラムが特定の方法で動作する理由を理解できます。

The Variables tab shows you the variables visible from the current execution point

フィールドのピン留め

オブジェクトに多数のフィールドがある場合は、それらのいくつかをピン留めして、常にリストの上部に表示されるようにすることができます。この優先順位は、対応するクラスのすべてのインスタンスに適用されます。

  • 変数ペインで、変数型を示すアイコンをクリックします。

    Two fields are pinned and have blue flags against them

フィールドが固定されると、青いフラグ が元のアイコンを置き換えます。フィールドの固定を解除するには、このフラグをクリックします。

変数のコピー

変数を調べるときに、変数名または値をコピーして別の場所に貼り付けたり、別の変数と比較したりする必要がある場合があります。

  • 変数の名前をコピーするには、変数を右クリックして名前をコピーを選択します。

  • 変数が保持する値をコピーするには、変数を右クリックして値をコピー Ctrl+C を選択します。

変数をクリップボードと比較する

変数値を他の値と比較するには、クリップボードと値を比較オプションを使用します。これは、たとえば、変数に長い文字列が格納されていて、それを別の長い文字列と比較する必要がある場合に役立ちます。

  1. たとえば、テキストファイルから比較するコンテンツをコピーします。

  2. 変数ペインで変数を右クリックし、クリップボードと値を比較を選択します。

  3. 開いた差分ビューアーで相違点を調べます。差分ビューアーの詳細については、ファイルとフォルダーの比較を参照してください。

専用の変数を表示するダイアログ

RubyMine では、専用のダイアログで変数をインスペクションできます。これは、変数(または参照が保持されているオブジェクト)を追跡し、同時にフレームとスレッド間を移動できるようにする必要がある場合に便利です。

  • 変数またはウォッチを右クリックし、インスペクションを選択します。

    Inspect dialog

変数値を設定

プログラムが特定のデータに対してどのように動作するかをテストしたり、実行時にフローを変更したりする場合は、変数値を変更することでそれを実現できます。

  1. 変数を選択し、F2 を押します。または、コンテキストメニューから値の設定を選択します。

  2. 変数の値を入力し、Enter を押します。

    Enter new value for the variable in the field right next to its name

変数ペインから宣言に移動できます。

  • 変数が宣言されているコードに移動するには、変数を右クリックしてソースに移動 F4 を選択します。

  • 変数型のクラス宣言に移動するには、変数を右クリックして型ソースに移動 Shift+F4 を選択します。

式の評価

RubyMine を使用すると、デバッグセッション中に式を評価して、プログラムの状態に関する追加の詳細を取得したり、実行時にさまざまな実行シナリオをテストしたりできます。

この機能は、プログラムがブレークポイントに到達した後に中断された ( 一時停止されていない) 場合にのみ機能します。

式内で呼び出されるメソッド内にブレークポイントがある場合、それらは無視されます。

エディターで簡単な式を評価する

式をすばやく評価するには、エディターで式をポイントします。メソッド呼び出しはこの方法では評価できないことに注意してください。

  1. 評価する式をポイントします。式の結果がツールチップに表示されます。

    Value tooltip
  2. 結果のオブジェクトの子要素を表示するには、the Expand button をクリックするか、Ctrl+F1 を押します。

    Value tooltip

値のツールチップが邪魔になる場合は、遅延を増やすか、完全に無効にすることができます。これを行うには、設定ダイアログ (Ctrl+Alt+S) でビルド、実行、デプロイ | デバッガー | データビューに移動し、好みに応じて値ツールチップを表示および値ツールチップの遅延オプションを設定します。

エディターで複雑な式を評価する

メソッド呼び出しを含むコード内の式を評価する場合、または評価する式の特定の部分を指定する場合は、式のクイック評価オプションを使用します。

  1. 式にキャレットを配置する(最も近い一致式を評価する)か、その一部を選択します(複雑な式のどの部分を評価するかを特定したい場合)。

  2. 実行 | デバッグアクション | 式のクイック評価 Ctrl+Alt+F8 に移動します。または、Alt を押したまま選択をクリックします。

    Value tooltip appears

式のクイック評価を構成して、コードを選択するだけで(メニュー / ショートカットを使用せずに)コードで機能するようにできます。このオプションを有効にすると、誤ってメソッドを呼び出す可能性があるため、慎重に使用してください。

コード選択時に式を評価する

  • 設定 | ビルド、実行、デプロイ | デバッガー | データビューに移動し、コード選択時に値ツールチップを表示するオプションを設定します。

任意の式を評価する

任意の式を評価することは、最も柔軟な評価オプションです。現在のフレームのコンテキスト内にある限り、任意のカスタムコードを評価できます。これを使用すると、宣言、メソッド呼び出し、ループなどを評価できます。

  1. 任意の式を評価するには、変数ペインの式の評価フィールドに式を入力して、を押します。Enter

    Expression in the Variables tab
  2. 結果はすぐ下に表示されます。式フィールドの右側にある をクリックして、式をウォッチに追加することもできます。

    Result of an expression in the Variables tab

長いコードブロックを評価する場合は、専用のダイアログを使用することをお勧めします。

専用の式を評価するダイアログ

  1. 現在目の前にある式または変数 (たとえば、エディターまたは変数ペイン) から開始する場合は、それを選択します。

    Select the expression to start from
  2. 実行 | デバッグアクション | 式の評価 Alt+F8 に移動するか、コンテキストメニューから式の評価を選択します。ショートカットは Ubuntu では機能しない可能性があります (正しく操作するには、ショートカット設定を調整してください )。

  3. 評価」ダイアログで、選択した式を変更するか、「」フィールドに新しい式を入力します。複数行のコードフラグメントを変更するには、「展開 Shift+Enter 」をクリックします。

    The expression is entered in the Code Fragment field
  4. 評価(複数行モードの場合は Ctrl+Enter)をクリックします。式の結果が結果フィールドに表示されます。

    式の結果は return ステートメントから取得されます。return ステートメントがない場合、結果はコードの最後の行から取得されます (式である必要さえありません。単一のリテラルでも機能します)。値を取得する有効な行がない場合、結果は undefined になります。指定された式を評価できない場合は、結果フィールドにその理由が示されます。

    Expression result is calculated

評価ダイアログは非モーダルなので、フォーカスをエディターに戻して他の変数や式をコピーすることができます。また、複数の評価ダイアログを開くこともできます。

インラインで値を表示

RubyMine は、変数の使用箇所のすぐ隣に変数の値を表示します。

変数値が変更されると、インラインビューが新しい値で更新され、色が変更されます。

Step over

インラインビューはデフォルトで有効になっています。これをオフにするには、設定ダイアログ (Ctrl+Alt+S) でビルド、実行、デプロイ | デバッガー | データビューに移動し、値をインラインで表示するオプションを無効にします。

インラインウォッチを追加する

ある式の結果を特定の行に表示したい場合は、そのためのインラインウォッチを設定できます。インラインウォッチは永続的であり、セッションの再開後もアクティブなままです。

  1. フィールドを追跡するオブジェクトを参照するインラインヒントをクリックします。

  2. ポップアップで、フィールドを選択し、インラインウォッチとして追加をクリックします。

    Adding an inline watch option
  3. 必要に応じてウォッチを微調整します。有効な式をウォッチとして使用できます。

    Setting an inline watch

エディターで設定したインラインウォッチは、デバッグツールウィンドウの変数ペインのインラインウォッチにも表示されます。

インラインウォッチを削除するには、ウォッチにカーソルを合わせ、近くの十字をクリックします。

ウォッチ式

変数またはより複雑な式の結果を追跡したい場合は、この変数または式の監視を設定します。これは、変数のリストに定期的に表示されないものを評価する必要がある場合や、インスタンス変数を固定する必要がある場合に便利で、各ステップの後にツリーを展開する必要がなくなります。

この機能は、プログラムがブレークポイントに到達した後に中断された ( 一時停止されていない) 場合にのみ機能します。

ウォッチは、選択したフレームのコンテキストで評価されます。ウォッチは、コンテキストから外れている場合、またはコンパイルに失敗した場合は評価できません。この場合、ウォッチにはエラーアイコン Error icon のマークが付けられます。

ウォッチを追加する

  • 評価する変数または式を入力します。式では、ローカルコンテキストにある限り、メソッド呼び出し、ラムダ宣言変数などを評価できます。

ウォッチ式に変数 / 式を追加した後、変数 / 式はそこに残り、各ステップで評価され、現在のコンテキストで結果を提供します。

ウォッチを編集する

  • 目的のウォッチを右クリックして、編集を選択します。

ウォッチを削除する

  • 単一の監視を削除するには、それを右クリックしてウォッチ式の除去を選択します。または、ウォッチを選択して Delete を押します。

  • すべてのウォッチを削除するには、任意の場所を右クリックしてすべてのウォッチ式を除去を選択します。

ウォッチは、変数と同じアクションを可能にします。例: 専用のダイアログボックスで表示するか、ソースコードに移動するために使用できます。

ウォッチはプロジェクトの一部です。これは、デバッグセッションを失うリスクなしに、デバッグセッションを停止して再実行できることを意味します。

実行ポイント

現在の実行ポイントに戻る

プログラムの状態を調べるには、コード内を移動する必要があり、多くの場合、プログラムが中断されている場所に戻る必要があります。

以下のいずれか 1 つを実行します:

  • メインメニューで、実行 | デバッグアクション | 実行ポイントの表示に移動します。

  • Alt+F10 を押します。

  • デバッグツールウィンドウのステップツールバーで The Show Execution Point button をクリックします。

現在の実行ポイントは青い線で示されます。この行のコードはまだ実行されていません。

Blue line indicating the current execution point

関連ページ:

デバッガーセッションを開始する

RubyMine を使用すると、Ruby スクリプト、Rails アプリケーション、テストをデバッグできます。デバッガーセッションの開始は、コードの実行と非常に似ています。デバッガーはバックグラウンドで接続されているため、デバッガーセッションを開始するために特別な設定を行う必要はありません。以下のトピックでは、実行方法について説明します。Ruby スクリプト、Rails アプリケーション、Rake タスク、テスト、RubyMine を使用すると、事前に構成することなく、または構成済みの起動パラメ...

デバッグツールウィンドウ

デバッガーセッションを開始すると、デバッグツールウィンドウが開きます。このウィンドウを使用して、デバッガーセッションを制御し、プログラムデータ (フレーム、スレッド、変数など) を表示および分析し、デバッガーアクションを実行します。デフォルトでは、プログラムがブレークポイントに到達したときにデバッグツールウィンドウが開き、セッションが終了しても非表示になりません。この動作を変更するには、ビルド、実行、デプロイ | デバッガー設定ページに移動し、ブレークポイントでデバッグウィンドウを表示するチェ...

ブレークポイント

ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。これにより、プログラムの状態と動作を調べることができます。ブレークポイントは、たとえば、特定のコード行に到達したときにプログラムを一時停止するなどの単純なものから、追加の条件をチェックしたり、ログに書き込んだりするなどのより複雑なロジックを含むものまであります。ブレークポイントは、一度設定すると、一時的なブレークポイントを除き、明示的に削除するまでプロジェクト内に残ります。ブレークポイントの種類:RubyMi

ファイル、フォルダー、テキストソースを比較する

RubyMine を使用すると、ファイル、フォルダー、ローカルファイルとそのリポジトリバージョン、データベースオブジェクト、テキストソース間の違いを確認できます。ファイルを比較:2 つまたは 3 つのファイルを比較するプロジェクトツールウィンドウで、比較するファイルを選択し、を選択するか、を押します。または、1 つのファイルを選択し、コンテキストメニューから比較を選択して、プロジェクトの外部にあるファイルを選択します。アクティブなエディターをクリップボードと比較するエディターの任意の場所を...

キーボードショートカット

RubyMine には定義済みのキーマップがいくつか含まれており、頻繁に使用するショートカットをカスタマイズできます。キーマップ構成を表示するには、設定ダイアログを開き、キーマップを選択します。RubyMine は、環境に基づいて事前定義されたキーマップを自動的に提案します。使用している OS と一致することを確認するか、使用している別の IDE またはエディターからのショートカットと一致するものを選択してください(たとえば、Eclipse または NetBeans)。キーマップは、対応するキ...

プログラムのステップスルー

ステップは、プログラムの段階的な実行を制御するプロセスです。RubyMine は、次の行に直接移動する必要があるか、中間のメソッド呼び出しもインスペクションする必要があるかなど、戦略に応じて使用される一連のステップアクションを提供します。ステップボタンは、デバッグウィンドウのツールバーにあります。ステップオーバー:現在のコード行をステップオーバーし、ハイライトされた行にメソッド呼び出しが含まれている場合でも、次の行に移動します。メソッドの実装はスキップされ、呼び出し元メソッドの次の行に直接移動...