Pythonデバッグのやり方
Pythonデバッグのやり方は、大きく分けて2つあります。
- pdbモジュールを使用する方法
- IDEを使用する方法
簡易的なデバッグならpdbモジュールを、本格的なデバッグならIDEを使いましょう。IDEから起動できないようなプログラムのデバッグに、pdbが使われるケースもあります。
Pythonデバッガの使い方
pdbモジュールを使用する方法
pdbモジュールは、Python標準ライブラリに含まれているデバッガです。pdbモジュールを使用すると、プログラムの実行を途中で中断して、変数の値やスタックトレースを表示することができます。
pdbモジュールを使用するには、以下の手順で行います。
- プログラムを実行する前に、以下のコードを追加します。
import pdb
-
プログラムを実行します。
-
プログラムの実行中に、
pdb.set_trace()
を呼び出すことで、デバッグを開始できます。 -
デバッグモードでは、以下のコマンドを使用して、プログラムを制御できます。
コマンド | 説明 |
---|---|
n |
次の行へ進む |
s |
現在の行を1回だけ実行する |
l |
現在の行を表示する |
c |
デバッグモードを終了して、プログラムを続行する |
IDEを使用する方法
IDEには、デバッガが搭載されているものがあります。IDEを使用すると、pdbモジュールを使用するよりも、簡単にデバッグを行うことができます。
IDEを使用するには、IDEのメニューから「デバッグ」を選択して、デバッグモードを開始します。デバッグモードでは、IDEのツールバーやメニューを使用して、プログラムを制御できます。
デバッグのコツ
デバッグを行う際には、以下のコツを参考にしてください。
- デバッグする前に、プログラムの動作を予測しておくと、デバッグがしやすくなります。
- デバッグモードでは、変数の値やスタックトレースをよく確認してください。
- 問題の原因が特定できない場合は、ブレークポイントを追加して、特定の行でプログラムを中断するようにしてください。
ブレークポイントの設定
ブレークポイントは、プログラムの実行を中断する場所を指定するためのものです。ブレークポイントを設定するには、デバッグモードで、ブレークポイントを追加したい行の左端にマウスカーソルを置いて、左クリックします。
ブレークポイントが設定されると、ブレークポイントに青い点が表示されます。ブレークポイントに到達すると、デバッグモードが開始されます。
その他、例外処理を記述してログに出力する方法などがあります。
VS Codeを使用したPythonデバッグ
VS Codeは、Microsoftが開発した統合開発環境(IDE)です。VS Codeには、Pythonデバッガが搭載されており、簡単にデバッグを行うことができます。
参考)Visual Studio Code – コード エディター | Microsoft Azure
VS CodeでPythonデバッグを行うには、以下の手順で行います。
-
VS Codeを起動して、Pythonファイルを開きます。
-
デバッグモードを開始するには、以下のいずれかの操作を行います。
- デバッグアイコンをクリックします。
Ctrl
+Shift
+D
キーを押します。- メニューから「デバッグ」>「開始」を選択します。
-
ブレークポイントを設定するには、ブレークポイントを追加したい行の左端にマウスカーソルを置いて、左クリックします。
-
ブレークポイントに到達すると、デバッグモードが開始されます。
デバッグモードでは、以下の操作を行うことができます。
- 次の行に進むには、
F5
キーを押します。 - 現在の行を1回だけ実行するには、
F10
キーを押します。 - 現在の行を表示するには、
F11
キーを押します。 - デバッグモードを終了して、プログラムを続行するには、
Shift
+F5
キーを押します。
デバッグツールウィンドウ
VS Codeのデバッグツールウィンドウでは、変数の値やスタックトレースを表示することができます。デバッグツールウィンドウを開くには、メニューから「表示」>「デバッグ」を選択します。
ブレークポイントの種類
VS Codeでは、以下の3種類のブレークポイントを設定できます。
- 条件付きブレークポイント:特定の条件を満たした場合にのみ、プログラムを中断します。
- ログブレークポイント:特定の条件を満たした場合に、ログを表示します。
- メモリリークブレークポイント:メモリリークを検出します。
デバッグのコツ
デバッグを行う際には、以下のコツを参考にしてください。
- デバッグする前に、プログラムの動作を予測しておくと、デバッグがしやすくなります。
- デバッグモードでは、変数の値やスタックトレースをよく確認してください。
- 問題の原因が特定できない場合は、ブレークポイントを追加して、特定の行でプログラムを中断するようにしてください。