PyCharm 2020.2ヘルプ

ブレークポイント

Breakpoints are special markers that suspend program execution at a specific point. This lets you examine the program state and behavior. Breakpoints can be simple (for example, suspending the program on reaching some line of code) or involve more complex logic (checking against additional conditions, writing log messages, and so on).

Once set, a breakpoint remains in your project until you remove it explicitly, except for temporary breakpoints).

ブレークポイントの種類

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

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

  • 例外ブレークポイント : suspend the program when Exception or its subclasses are thrown. In PyCharm, you can set breakpoints for Python exceptions. For PyCharm Professional, Django, Jinja2, JavaScript, and Jupyter exception breakpoints are available. They apply globally to the exception condition and do not require a particular source code reference.

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

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

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

    Line breakpoint

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

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

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

ブレークポイントの管理

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

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

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

To avoid accidentally removing a breakpoint and losing its parameters, you can choose to remove breakpoints by dragging them to the editor or clicking the middle mouse button. To do this, go to 設定/環境設定 | ビルド、実行、デプロイ | デバッガー and select エディターにドラッグまたはマウスの中ボタンをクリック . Clicking a breakpoint will then enable or disable it.

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

If you don't need to stop at your breakpoints for some time, you can mute them. This allows you to resume normal program operation without leaving the debugger session. After that, you can unmute breakpoints and continue debugging.

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

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

When you remove a breakpoint, its internal configuration is lost. To temporarily turn an individual breakpoint off without losing its parameters, you can disable it:

  • For non-exception breakpoints: right-click it and set the Enabled option as required. You can also toggle them with the middle mouse button if removing breakpoints is not assigned to it.

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

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

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

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

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

Depending on the breakpoint type, you can configure additional properties which allow you to tailor its operation for specific needs. The most used options are available via intentions.

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

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

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

インテンション説明
ブレークポイントの除去除去選択した行のブレークポイント。
ブレークポイントを使用不可にする使用不可選択した行のブレークポイント。
ブレークポイントの編集Opens a dialog with the most used breakpoint properties. For more properties, click さらに or press Ctrl+Shift+F8 .

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

オプション説明ブレークポイントの種類
使用可能プロジェクトから削除せずに一時的にブレークポイントを無効にするには、チェックボックスをオフにします。無効にされたブレークポイントは、デバッグプロセス中にスキップされます。すべてのタイプ
中断

Select the checkbox to pause the program execution when a breakpoint is hit. Suspending an application is useful if you need to obtain logging information or calculate an expression at a certain point without interrupting the program. If you need to create a master breakpoint that will trigger dependent breakpoints when hit, choose not to suspend the program at that breakpoint.

中断ポリシーを選択します。

  • すべて : すべてのスレッドが中断されます

  • スレッド : only the containing this breakpoint will be suspended. If you want the スレッド policy to be used as the default one, click the デフォルトにする button.

すべてのタイプ
条件

Select to specify a condition for hitting a breakpoint.A condition is a Python Boolean expression.

この式はブレークポイントが設定されている行で有効でなければならず、ブレークポイントがヒットするたびに評価されます。評価結果が Trueの場合、選択したアクションが実行されます。

次のように複数行の式を入力できます。

if attempted_password == os.environ['USER_PASSWORD']: session['logged_in'] = True else: session['logged_in'] = False error = 'Invalid credentials. Please, try again.' return session['logged_in']

Pythonの行と例外のブレークポイント
ログ

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

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

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

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

Pythonの行と例外のブレークポイント
評価して記録

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

Pythonの行と例外のブレークポイント
一度ヒットしたら除去するヒットした直後にプロジェクトからブレークポイントを削除することを選択します。Django例外、Jinja2例外、およびJavaScript例外ブレークポイント
ブレークポイントに達するまで無効にする現在のブレークポイントをトリガするブレークポイントを選択してください。そのブレークポイントがヒットするまで、現在のブレークポイントは無効になります。再度無効にするかヒットした後も有効にしておくかを選択することもできます。すべてのタイプ
未キャッチのみキャッチされていない例外でブレークポイントに達したときに通知を受けるように選択します。JavaScript 例外ブレークポイント
有効化ポリシー
終了時プロセスがこの例外をスローして終了したときにデバッガを停止する場合に選択します。Python 例外ブレークポイント
raise 時この例外がスローされたときにデバッガを停止する場合に選択します。この場合、プロセスは終了しません。Python 例外ブレークポイント
ライブラリ・ファイルを無視するライブラリ内でこの例外が発生した場合にデバッガを停止したくない場合に選択します。Python 例外ブレークポイント

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

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

状況説明
検証済みAfter you have started a debugger session, the debugger checks whether it is technically possible to suspend the program at the breakpoint. If yes, the debugger marks the breakpoint as verified.
警告If it is technically possible to suspend the program at the breakpoint, however there are issues related to it, the debugger gives you a warning. This may happen, for example, when it is impossible to suspend the program at one of the method's implementations.
無効If it is technically impossible to suspend the program at the breakpoint, the debugger marks it as invalid. The most common cause for this is that there is no executable code on the line.
非アクティブ/依存A breakpoint is marked as inactive/dependent when it is configured to be disabled until another breakpoint is hit, and this has not happened yet.
ミュートAll breakpoints are temporarily inactive because they have been muted.
使用不可This breakpoint is temporarily inactive because it has been disabled.
中断しないThe suspend policy is set for this breakpoint so that it does not suspend the execution when hit.

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

Depending on their type and status, breakpoints are marked with the following icons:

メソッド例外
標準line breakpointmethod breakpointexception breakpoint
使用不可disabled line breakpointdisabled method breakpointdisabled exception breakpoint
検証済みverified line breakpointverified method breakpoint
ミュートmuted line breakpointmuted method breakpoint
非アクティブ/依存inactive/dependent line breakpointinactive/dependent method breakpoint
ミュート無効muted disabled line breakpointmuted disabled method breakpoint
中断しないnon-suspending line breakpointnon-suspending method breakpoint
確認済みの一時停止なしverified non-suspending line breakpointverified non-suspending method breakpoint
無効invalid breakpoint

生産性のヒント

「printf」デバッグにブレークポイントを使用する
Use non-suspending logging breakpoints (sometimes referred to as watchpoints in other debuggers) instead of inserting print statements in your code. This provides a more flexible and centralized way of handling debug log messages.
ロギングブレークポイントをより迅速に設定する
To set a non-suspending logging breakpoint, hold Shift and click the gutter. This will not suspend the program execution and instead log a message like Breakpoint reached at ocean.Whale.main(Whale.java:5) . If you want to log some expression that is in front of you in the editor, select it before holding Shift and clicking the gutter.
ブレークポイントの説明を追加する
プロジェクトに多数のブレークポイントがある場合、検索を容易にするためにブレークポイントに説明を追加できます。これを行うには、ブレークポイントダイアログ Ctrl+Shift+F8 のブレークポイントを右クリックし、メニューから説明の編集を選択します。これで、ブレークポイント名の入力を開始すると、フォーカスが取得されます。
ブレークポイントのグループ化
たとえば、特定の問題のブレークポイントをマークアウトする必要がある場合、ブレークポイントをグループに編成できます。これを行うには、ブレークポイントダイアログ Ctrl+Shift+F8で、グループに配置するブレークポイントを選択し、メニューからグループへ移動を選択します。
ラムダ式とメソッド参照
JVMの設計により、ラムダ式とは異なり、メソッド参照はスタックトレースに意味のある情報を提供しません。さらに、メソッド参照にブレークポイントを設定することはできません。メソッド参照が重要な場合にトレーサビリティを低下させる場合は、代わりにラムダの使用を検討してください。
致命的なエラーの原因を診断する
例外ブレークポイントは Throwableで機能するため、Error のサブクラスがスローされたときに使用してプログラムを中断することもできます。これは、OutOfMemoryErrorStackOverflowErrorなどのエラーの原因を調査できます。それらに例外ブレークポイントを設定すると、クラッシュする前にプログラムで何が起こったのかを調べることができます。
並行性の課題についてプログラムをテストする
マルチスレッドプログラムが同時実行性に関して堅牢であるかどうかを確認する良い方法は、ヒット時に1つのスレッドのみを一時停止するブレークポイントを使用することです。単一のスレッドを停止すると、アプリケーションの設計上の問題が明らかになる場合がありますが、それ以外の場合は明らかではありません。
最終更新日: 2020年5月25日