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

ブレークポイントは、一度設定すると、一時的なブレークポイントを除き、明示的に削除するまでプロジェクト内に残ります。
ブレークポイントの種類
PyCharm では、次のタイプのブレークポイントを使用できます。
行ブレークポイント : ブレークポイントが設定されたコード行に到達したらプログラムを中断します。このタイプのブレークポイントは、実行可能なコード行に設定できます。
例外のブレークポイント :
Exception
またはそのサブクラスがスローされたときにプログラムを中断します。PyCharm では、Python 例外のブレークポイントを設定できます。PyCharm Professional、Django、Jinja2、JavaScript、Jupyter 例外ブレークポイントを使用できます。これらは例外条件にグローバルに適用され、特定のソースコード参照は必要ありません。スタックトレースとは異なり、例外でアプリケーションを中断すると、周囲のコンテキストまたはデータがまだ利用可能な間に調べることができます。
ブレークポイントの設定
行ブレークポイントを設定する
ブレークポイントを設定するコードの実行可能な行でガターをクリックします。または、行にキャレットを置き、Ctrl+F8 を押します。
例外ブレークポイントを設定する
Ctrl+Shift+F8 を押すか、メインメニューから
を選択します。ブレークポイントダイアログで、Alt+Insert を押すか
をクリックし、Python 例外ブレークポイントまたは JavaScript 例外ブレークポイントを選択します。
ブレークポイントの管理
ブレークポイントを除去する
例外以外のブレークポイントの場合は、ガター内のブレークポイント。
すべてのブレークポイントの場合: メインメニューの
Ctrl+Shift+F8 に移動し、ブレークポイントを選択して、除去をクリックするか、Delete を押します。
誤ってブレークポイントを削除してそのパラメーターを失うのを防ぐために、エディターにドラッグするか、マウスの中央ボタンをクリックして、ブレークポイントを削除することを選択できます。これを行うには、エディターにドラッグまたはマウスの中央ボタンをクリックを選択します。ブレークポイントをクリックすると、それが有効または無効になります。
に移動してブレークポイントのミュート
ブレークポイントでしばらく停止する必要がない場合は、ミュートできます。これにより、デバッガーセッションを移動することなく、通常のプログラム操作を再開できます。その後、ブレークポイントのミュートを解除して、デバッグを続行できます。
デバッグツールウィンドウのツールバーのブレークポイントのミュートボタン
をクリックします。
ブレークポイントを使用可能 / 使用不可にする
ブレークポイントを削除すると、その内部構成は失われます。パラメーターを失うことなく個々のブレークポイントを一時的にオフにするには、無効にすることができます。
非例外ブレークポイントの場合: 右クリックして、必要に応じて有効オプションを設定します。ブレークポイントの削除が割り当てられていない場合は、マウスの中央ボタンで切り替えることもできます。
すべてのブレークポイントの場合: 実行 | ブレークポイントの表示 Ctrl+Shift+F8 をクリックして、リストのブレークポイントをオン / オフにします。
ブレークポイントの移動 / コピー
ブレークポイントを移動するには、それを別の行にドラッグします。
ブレークポイントをコピーするには、Ctrl を押したまま、ブレークポイントを別の行にドラッグします。これにより、宛先に同じパラメーターを持つブレークポイントが作成されます。
設定されたすべてのブレークポイントを表示
ブックマークツールウィンドウですべてのブレークポイントのリストを表示できます。ブレークポイントは、コード内に配置すると、ツールウィンドウの専用リストに自動的に追加されます。
メインメニューで、ブレークポイントリストを展開します。
に移動するか、Alt+2 を押して

ブレークポイントのグループ化
たとえば、特定の問題に対してブレークポイントをマークアウトする必要がある場合は、ブレークポイントをグループにまとめることができます。
ブレークポイントダイアログ Ctrl+Shift+F8 で、グループに配置するブレークポイントを選択し、メニューから を選択します。
ブレークポイントのプロパティを構成する
ブレークポイントのタイプに応じて、特定のニーズに合わせて操作を調整できる追加のプロパティを構成できます。最も使用されるオプションは、インテンションを介して利用できます。
ブレークポイントインテンションにアクセスするには、ブレークポイントのある行にキャレットを置き、Alt+Enter を押します。このオプションは、基本的なブレークポイントプロパティをすばやく設定する必要がある場合に使用します。
プロパティの完全なリストにアクセスするには、ブレークポイントを右クリックして詳細をクリックするか、Ctrl+Shift+F8 を押します。
インテンションリファレンス
ブレークポイントのプロパティリファレンス
オプション | 説明 | ブレークポイントの種類 |
---|---|---|
有効 | プロジェクトから削除せずに一時的にブレークポイントを無効にするには、チェックボックスをオフにします。無効にされたブレークポイントは、デバッグプロセス中にスキップされます。 | すべてのタイプ |
中断 | チェックボックスを選択すると、ブレークポイントに達したときにプログラムの実行が一時停止します。アプリケーションを一時停止すると、ログ情報を取得したり、特定の時点でプログラムを中断することなく式を計算したりする必要がある場合に役立ちます。ヒットしたときに依存ブレークポイントをトリガーするマスターブレークポイントを作成する必要がある場合は、そのブレークポイントでプログラムを中断しないように選択します。 中断ポリシーを選択します。
| すべてのタイプ |
条件 | ブレークポイントを打つための条件を指定するために選択します。条件は Python のブール式です。 この式はブレークポイントが設定されている行で有効でなければならず、ブレークポイントがヒットするたびに評価されます。評価結果が | Python の行と例外のブレークポイント |
ログ | 次のイベントをコンソールに記録するかどうかを選択します。
| Python の行と例外のブレークポイント |
評価して記録 | ブレークポイントに到達したときに式を評価し、その結果をコンソール出力に表示する場合に選択します。 | Python の行と例外のブレークポイント |
一度ヒットしたら除去する | ヒットした直後にプロジェクトからブレークポイントを削除することを選択します。 | Django 例外、Jinja2 例外、JavaScript 例外ブレークポイント |
ブレークポイントに達するまで無効にする | 現在のブレークポイントをトリガするブレークポイントを選択してください。そのブレークポイントがヒットするまで、現在のブレークポイントは無効になります。再度無効にするかヒットした後も有効にしておくかを選択することもできます。 | すべてのタイプ |
未キャッチのみ | キャッチされていない例外でブレークポイントに達したときに通知を受けるように選択します。 | JavaScript 例外ブレークポイント |
有効化ポリシー | ||
終了時 | プロセスがこの例外をスローして終了したときにデバッガーを停止する場合に選択します。 | Python 例外ブレークポイント |
raise 時 | この例外がスローされたときにデバッガーを停止する場合に選択します。この場合、プロセスは終了しません。 | Python 例外ブレークポイント |
ライブラリファイルを無視する | ライブラリ内でこの例外が発生した場合にデバッガーを停止したくない場合に選択します。 | Python 例外ブレークポイント |
ブレークポイントのステータス
ブレークポイントには、次のステータスがあります。
状況 | 説明 |
---|---|
検証済み | デバッガーセッションを開始した後、デバッガーはプログラムをブレークポイントで一時停止することが技術的に可能かどうかをチェックします。はいの場合、デバッガーはブレークポイントを検証済みとしてマークします。 |
警告 | ブレークポイントでプログラムを一時停止することが技術的に可能ですが、それに関連する問題がある場合、デバッガーはブレークポイントのステータスを警告に設定します。これは、たとえば、メソッドの実装の 1 つでプログラムを一時停止することが不可能な場合に発生することがあります。 |
無効 | ブレークポイントでプログラムを一時停止することが技術的に不可能な場合、デバッガーはそれを無効としてマークします。これは、その行に実行可能なコードがないためよく発生します。 |
非アクティブ / 依存 | ブレークポイントは、別のブレークポイントに到達するまで無効になるように構成されている場合、非アクティブ / 依存としてマークされますが、これはまだ発生していません。 |
ミュート | すべてのブレークポイントはミュートされているため、一時的に非アクティブです。 |
無効 | それはされているため、このブレークポイントが一時的にアクティブで無効。 |
中断しない | このブレークポイントには中断ポリシーが設定されているため、ヒットしたときに実行が中断されることはありません。 |
ブレークポイントアイコン
タイプとステータスに応じて、ブレークポイントは次のアイコンでマークされます。
行 | 例外 | |||
---|---|---|---|---|
標準 | | | ||
無効 | | | ||
検証済み | | |||
ミュート | | |||
非アクティブ / 依存 | | |||
ミュート無効 | | |||
中断しない | | |||
確認済みの一時停止なし | | |||
無効 | |
生産性のヒント
- デバッグ印刷にブレークポイントを使用する
コードに出力ステートメントを挿入する代わりに、non-suspending ログブレークポイント(他のデバッガーではウォッチポイントと呼ばれることもあります)を使用します。これにより、デバッグログメッセージを処理する、より柔軟で集中化された方法が提供されます。
- ロギングブレークポイントをより迅速に設定する
non-suspending ロギングブレークポイントを設定するには、Shift を押しながらガターをクリックします。これはプログラムの実行を中断せず、代わりに
Breakpoint reached: threads.py:28
のようなメッセージを記録します。エディターの前にある式をログに記録する場合は、Shift を押しながらガターをクリックする前に、式を選択します。- ブレークポイントの説明を追加する
プロジェクトに多数のブレークポイントがある場合、検索を容易にするためにブレークポイントに説明を追加できます。これを行うには、ブレークポイントダイアログ Ctrl+Shift+F8 のブレークポイントを右クリックし、メニューから説明の編集を選択します。これで、ブレークポイント名の入力を開始すると、フォーカスが取得されます。
- ソースに移動
ブレークポイントダイアログから選択したブレークポイントが設定されているコード行に移動するには、F4 を押します。
関連ページ:

ブックマーク
大規模なプロジェクトで作業する場合、ファイルやフォルダーの検索には時間がかかる場合があります。そのような場合、PyCharm はブックマークを備えています。必要なコード行をブックマークして、見つけやすくすることができます。他のプロジェクトアイテムよりも頻繁に必要なプロジェクトファイルとフォルダーをブックマークすることもできます。すべてのブックマークはブックマークツールウィンドウのリストにグループ化されており、メインメニューからを選択するか、を押すと開くことができます。ツールウィンドウには、コー...

デバッガーセッションを開始する
デバッガーセッションの開始は、プログラムを通常モードで実行するのと非常によく似ています。デバッガーはバックグラウンドで接続されているため、デバッガーセッションを開始するために特別な設定を行う必要はありません。PyCharm からプログラムを実行できる場合は、同じ構成を使用してプログラムをデバッグすることもできます。プログラムをデバッグするたびに、デバッガーセッションは実行 / デバッグ構成に基づきます。これにより、アプリケーションを起動するためのパラメーターとアクションを構成できます。たとえば、...

デバッグ
デバッグセッション中に、デバッガーをアタッチしてプログラムを起動します。デバッガーの目的は、プログラムの実行を妨害し、内部で何が起こっているかに関する情報を提供することです。これにより、プログラムのバグを検出して修正するプロセスが容易になります。デバッグが初めての場合は、PyCharm を使用したデバッグチュートリアルを試してください。デバッグオプションを構成するで一般的なデバッグプロパティと動作を構成します。デバッグが初めての場合は、すぐに使用できる構成が機能します。各デバッガー機能に関するト...