中断されたプログラムを調べる
デバッガーセッションが開始されると、デバッグツールウィンドウが表示され、次のいずれかが発生するまでプログラムが正常に実行されます。
その後、プログラムは中断され、現在の状態を調べたり、実行を制御したり、実行時にさまざまなシナリオをテストしたりできます。
フレームを調べる
プログラムの状態はフレームで表されます。プログラムが一時停止すると、現在のフレームスタックがデバッグツールウィンドウのフレームタブに表示されます。
フレームはアクティブなメソッドまたは関数呼び出しに対応します。呼び出されたメソッドまたは関数のローカル変数、その引数、式の評価を可能にするコードコンテキストを格納します。
メソッドが呼び出されるたびに、新しいフレームがスタックの一番上に追加されます。メソッドの実行が完了すると、対応するフレームがスタックから削除されます(後入れ先出し方式)。
フレームを調べることで、特定のパラメーターがメソッドに渡された理由と、呼び出し時の呼び出し元の状態を理解できます。
スタックをクリップボードにコピー
現在のスレッドのコールスタックをコピーするには、フレームタブの任意の場所を右クリックして、スタックをコピーを選択します。
変数の調査 / 更新
変数タブには、選択したフレーム / スレッド内の変数のリストが表示されます。変数を調べると、プログラムが特定の方法で動作する理由を理解できます。
各変数の左側のアイコンは、その型を示しています。
変数型
アイコン | 説明 |
---|---|
| ローカル配列 |
| ローカルプリミティブ型 |
| ウォッチと自動変数。 |
| ローカル参照変数 |
変数のコピー
変数を調べるときに、変数名または値をコピーして別の場所に貼り付けたり、別の変数と比較したりする必要がある場合があります。
変数の名前をコピーするには、変数を右クリックして名前をコピーを選択します。
変数が保持する値をコピーするには、変数を右クリックして値をコピー Ctrl+C を選択します。
デフォルトでは、文字列変数は一重引用符で囲まれてコピーされます。引用ポリシーを変更するには、デバッグツールウィンドウのツールバーで 詳細をクリックし、 を選択して、必要なオプションを選択します。
変数をクリップボードと比較する
変数値を他の値と比較するには、クリップボードと値を比較オプションを使用します。これは、たとえば、変数に長い文字列が格納されていて、それを別の長い文字列と比較する必要がある場合に役立ちます。
たとえば、テキストファイルから比較するコンテンツをコピーします。
変数タブで変数を右クリックし、クリップボードと値を比較を選択します。
開いた差分ビューアーで相違点を調べます。差分ビューアーの詳細については、ファイルとフォルダーの比較を参照してください。
専用の変数を表示するダイアログ
PyCharm では、専用のダイアログで変数をインスペクションできます。これは、変数(または参照が保持されているオブジェクト)を追跡し、同時にフレームとスレッド間を移動できるようにする必要がある場合に便利です。
変数またはウォッチを右クリックし、インスペクションを選択します。
データ構造を表示する
デバッグツールウィンドウで変数を表示しているときに、配列として表示、データフレームとして表示、またはシリーズとして表示リンクをクリックして、データビューツールウィンドウにデータを表示できます。
デフォルトでは、新しいテーブル表現が使用されます。 テーブル表示間の切り替えをクリックしてテーブルインターフェースを変更します。
テーブルの色付けオプションをクリックして、セルの色を切り替えて設定します。
フォーマットフィールドを使用して、データフレームのフォーマットを調整します。
変数値を設定
プログラムが特定のデータに対してどのように動作するかをテストしたり、実行時にフローを変更したりする場合は、変数値を変更することでそれを実現できます。
変数を選択し、F2 を押します。または、コンテキストメニューから値の設定を選択します。
変数の値を入力し、Enter を押します。
ソースコードに移動する
変数ペインから宣言に移動できます。
変数が宣言されているコードに移動するには、変数を右クリックしてソースに移動 F4 を選択します。
変数型のクラス宣言に移動するには、変数を右クリックして型ソースに移動 Shift+F4 を選択します。
式の評価
PyCharm を使用すると、デバッグセッション中に式を評価して、プログラムの状態に関する追加の詳細を取得したり、実行時にさまざまな実行シナリオをテストしたりできます。
この機能は、プログラムがブレークポイントに到達した後に中断された(一時停止されていない)場合にのみ機能します。
式内で呼び出されるメソッド内にブレークポイントがある場合、それらは無視されます。
エディターで簡単な式を評価する
式をすばやく評価するには、エディターで式をポイントします。メソッド呼び出しはこの方法では評価できないことに注意してください。
評価する式をポイントします。式の結果がツールチップに表示されます。
結果のオブジェクトの子要素を表示するには、 をクリックするか、Ctrl+F1 を押します。
値のツールチップが邪魔になる場合は、遅延を増やすか、完全に無効にすることができます。これを行うには、設定ダイアログ (Ctrl+Alt+S) で に移動し、好みに応じて値ツールチップを表示および値ツールチップの遅延オプションを設定します。
エディターで複雑な式を評価する
メソッド呼び出しを伴うコード内の式を評価したい場合、または式のどの部分を評価するかについて特定したい場合は、式のクイック評価オプションを使用します。
式にキャレットを配置する(最も近い一致式を評価する)か、その一部を選択します(複雑な式のどの部分を評価するかを特定したい場合)。
Ctrl+Alt+F8 に移動します。または、Shift+Alt を押したまま選択をクリックします。
式のクイック評価を構成して、コードを選択するだけで(メニュー / ショートカットを使用せずに)コードで機能するようにできます。このオプションを有効にすると、誤ってメソッドを呼び出す可能性があるため、慎重に使用してください。
コード選択時に式を評価する
コード選択時に値ツールチップを表示するオプションを設定します。
に移動し、
任意の式を評価する
任意の式を評価することは、最も柔軟な評価オプションです。現在のフレームのコンテキスト内にある限り、任意のカスタムコードを評価できます。これを使用すると、ステートメント、関数呼び出し、ループなどを評価できます。
任意の式を評価するには、変数ペインの式の評価フィールドに式を入力して、を押します。Enter
結果はすぐ下に表示されます。式フィールドの右側にある をクリックして、式をウォッチに追加することもできます。
長いコードブロックを評価する場合は、専用のダイアログを使用することをお勧めします。
専用の式を評価するダイアログ
現在目の前にある式または変数 (たとえば、エディターまたは変数ペイン) から開始する場合は、それを選択します。
式の評価を選択します。ショートカットは Ubuntu では機能しない可能性があります (正しく操作するには、ショートカット設定を調整してください )。
Alt+F8 に移動するか、コンテキストメニューから「評価」ダイアログで、選択した式を変更するか、「式」フィールドに新しい式を入力します。複数行のコードフラグメントを変更するには、「展開 Shift+Enter 」をクリックします。
評価(複数行モードの場合は Ctrl+Enter)をクリックします。式の結果が結果フィールドに表示されます。
式の結果は return ステートメントから取得されます。return ステートメントがない場合、結果はコードの最後の行から取得されます (式である必要さえありません。単一のリテラルでも機能します)。値を取得する有効な行がない場合、結果は
undefined
になります。指定された式を評価できない場合は、結果フィールドにその理由が示されます。
評価ダイアログは非モーダルなので、フォーカスをエディターに戻して他の変数や式をコピーすることができます。また、複数の評価ダイアログを開くこともできます。
インラインで値を表示
PyCharm は、変数の使用箇所のすぐ隣に変数の値を表示します。
変数値が変更されると、インラインビューが新しい値で更新され、色が変更されます。
行にオブジェクトへの参照が含まれている場合は、エディターでそのフィールドを直接調べることができます。このポップアップから、変数値を変更したり、インラインウォッチを追加したりすることもできます。
インラインビューはデフォルトで有効になっています。これをオフにするには、設定ダイアログ (Ctrl+Alt+S) で に移動し、値をインラインで表示するオプションを無効にします。
インラインウォッチを追加する
ある式の結果を特定の行に表示したい場合は、そのためのインラインウォッチを設定できます。インラインウォッチは永続的であり、セッションの再開後もアクティブなままです。
フィールドを追跡するオブジェクトを参照するインラインヒントをクリックします。
ポップアップで、フィールドを選択し、インラインウォッチとして追加をクリックします。
必要に応じてウォッチを微調整します。有効な式をウォッチとして使用できます。
インラインウォッチを削除するには、ウォッチにカーソルを合わせ、近くの十字をクリックします。
ウォッチ式
変数またはより複雑な式の結果を追跡したい場合は、この変数または式の監視を設定します。これは、変数のリストに定期的に表示されないものを評価する必要がある場合や、インスタンス変数を固定する必要がある場合に便利で、各ステップの後にツリーを展開する必要がなくなります。
この機能は、プログラムがブレークポイントに到達した後に中断された(一時停止されていない)場合にのみ機能します。
ウォッチは、選択したフレームのコンテキストで評価されます。ウォッチは、コンテキストから外れている場合、またはコンパイルに失敗した場合は評価できません。この場合、ウォッチにはエラーアイコン のマークが付けられます。
ウォッチを追加する
ウォッチ式タブで新規ウォッチ式 をクリックします。
評価する変数または式を入力します。式では、ローカルコンテキストにある限り、メソッド呼び出しの評価、変数の宣言などを行うことができます。
ウォッチ式に変数 / 式を追加した後、変数 / 式はそこに残り、各ステップで評価され、現在のコンテキストで結果を提供します。
ウォッチを編集する
目的のウォッチを右クリックして、編集を選択します。
ウォッチをコピーする
コピーしたいウォッチを選択します。
変数 / ウォッチ式タブのウォッチ式の複製 をクリックするか、Ctrl+D を押します。
ウォッチの順序を変更する
便宜上、変数 / ウォッチ式ペインに表示されるウォッチの順序を変更できます。
変数 / ウォッチ式ペインのウォッチ式を上に移動 / ウォッチ式を下に移動ボタン、または Alt+Shift+Up および Alt+Shift+Down キーボードショートカットを使用します。
ウォッチを削除する
単一の監視を削除するには、それを右クリックしてウォッチ式の除去を選択します。または、ウォッチを選択し、変数 / ウォッチ式ペインで Delete を押します。
すべての監視を削除するには、変数 / ウォッチ式ペインの任意の場所を右クリックし、すべてのウォッチ式を除去を選択します。
ウォッチは、変数と同じアクションを可能にします。例: 専用のダイアログボックスで表示するか、ソースコードに移動するために使用できます。
ウォッチはプロジェクトの一部です。これは、デバッグセッションを失うリスクなしに、デバッグセッションを停止して再実行できることを意味します。
実行ポイント
現在の実行ポイントに戻る
プログラムの状態を調べるには、コード内を移動する必要があり、多くの場合、プログラムが中断されている場所に戻る必要があります。
以下のいずれか 1 つを実行します:
メインメニューで、
に移動します。Alt+F10 を押します。
デバッグツールウィンドウのステップツールバーで をクリックし、リストから実行ポイントの表示 を選択します。
現在の実行ポイントは青い線で示されます。この行のコードはまだ実行されていません。
関連ページ:
デバッガーセッションを開始する
デバッガーセッションの開始は、プログラムを通常モードで実行するのと非常によく似ています。デバッガーはバックグラウンドで接続されているため、デバッガーセッションを開始するために特別な設定を行う必要はありません。PyCharm からプログラムを実行できる場合は、同じ構成を使用してプログラムをデバッグすることもできます。プログラムをデバッグするたびに、デバッガーセッションは実行 / デバッグ構成に基づきます。これにより、アプリケーションを起動するためのパラメーターとアクションを構成できます。たとえば、...
デバッグツールウィンドウ
デバッガーセッションを開始すると、デバッグツールウィンドウが開きます。このウィンドウを使用して、デバッガーセッションを制御し、プログラムデータ (フレーム、変数など) を表示および分析し、デバッガーアクションを実行します。デフォルトでは、プログラムがブレークポイントに到達したときにデバッグツールウィンドウが開き、セッションが終了しても非表示になりません。この動作を変更するには、設定のビルド、実行、デプロイ | デバッガーページに移動し、ブレークポイントでデバッグウィンドウを表示するチェックボッ...
ブレークポイント
ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。これにより、プログラムの状態と動作を調べることができます。ブレークポイントは、たとえば、特定のコード行に到達したときにプログラムを一時停止するなどの単純なものから、追加の条件をチェックしたり、ログに書き込んだりするなどのより複雑なロジックを含むものまであります。ブレークポイントは、一度設定すると、一時的なブレークポイントを除き、明示的に削除するまでプロジェクト内に残ります。ブレークポイントの種類:PyChar
ファイル、フォルダー、テキストソースを比較する
PyCharm を使用すると、ファイル、フォルダー、ローカルファイルとそのリポジトリバージョン、データベースオブジェクト、テキストソース間の違いを確認できます。ファイルを比較:2 つまたは 3 つのファイルを比較するプロジェクトツールウィンドウで、比較するファイルを選択してを選択するか、を押します。または、1 つのファイルを選択し、コンテキストメニューから比較を選択して、プロジェクトの外部にあるファイルを選択します。アクティブなエディターをクリップボードと比較するエディターの任意の場所を右ク...
キーボードショートカットを設定する
PyCharm には定義済みのキーマップがいくつか含まれており、頻繁に使用するショートカットをカスタマイズできます。キーマップ構成を表示するには、設定ダイアログを開き、キーマップを選択します。PyCharm は、環境に基づいて事前定義されたキーマップを自動的に提案します。使用している OS と一致することを確認するか、使用している別の IDE またはエディターからのショートカットと一致するもの(Emacs など)を選択してください。キーマップは、対応するキーボードとマウスのショートカットおよび...
プログラムのステップスルー
ステップは、プログラムの段階的な実行を制御するプロセスです。PyCharm は、次の行に直接移動する必要があるか、中間のメソッド呼び出しもインスペクションする必要があるかなど、戦略に応じて使用される一連のステップアクションを提供します。ステップボタンは、デバッグウィンドウのツールバーにあります。ステップオーバー:現在のコード行をステップオーバーし、ハイライトされた行にメソッド呼び出しが含まれている場合でも、次の行に移動します。メソッドの実装はスキップされ、呼び出し元メソッドの次の行に直接移動し...