Python デバッガー
pdb と breakpoint モジュール
pdb モジュールは、Pythonデバッガーであり、コードのデバッグを行うためのツールを提供します。breakpoint 関数は、デバッガーを開始するための便利な関数です。
10.1 pdb モジュールの基本
pdb モジュールは、対話型デバッガーを提供し、プログラムの実行をステップごとに追跡し、変数の値を確認し、ブレークポイントを設定することができます。
例:基本的な pdb の使用
以下のコードでは、pdb.set_trace() を使用してデバッガーを起動し、コードの実行を中断します。
import pdb
def add(a, b):
pdb.set_trace() # ここでデバッガーを起動
return a + b
result = add(2, 3)
print(result)
このコードを実行すると、デバッガーが起動し、対話型プロンプトが表示されます。ここで、さまざまなコマンドを使用してコードをデバッグできます。
pdb の主なコマンド
• n (next): 次の行に進む
• s (step): 関数呼び出しの内部に入る
• c (continue): 次のブレークポイントまで続行
• q (quit): デバッガーを終了
• p (print): 変数の値を表示
10.2 breakpoint 関数
breakpoint 関数は、デバッガーを開始するための簡単な方法を提供します。Python 3.7以降で使用可能です。breakpoint() を呼び出すと、デフォルトのデバッガーが起動します。
例:breakpoint の使用
def add(a, b):
breakpoint() # ここでデバッガーを起動
return a + b
result = add(2, 3)
print(result)
この設定を行うと、breakpoint() が呼び出されたときに ipdb デバッガーが使用されます。
10.3 pdb をスクリプトから起動する
pdb モジュールを使用して、スクリプト全体のデバッグを行うこともできます。これにより、プログラムの実行全体を通じてデバッグを行うことができます。
例:スクリプト全体のデバッグ
python -m pdb your_script.py
このコマンドを実行すると、your_script.py がデバッガーを使用して実行されます。
10.4 pdb モジュールの詳細
pdb モジュールには、さまざまな詳細なコマンドや設定があります。
例:ブレークポイントの設定と削除
import pdb
def add(a, b):
return a + b
def subtract(a, b):
return a - b
pdb.set_trace()
result = add(2, 3)
print(result)
result = subtract(5, 2)
print(result)
デバッガーが起動したら、以下のコマンドを使用してブレークポイントを設定および削除できます。
• b (break): ブレークポイントを設定
• cl (clear): ブレークポイントを削除
例:変数の値の確認
import pdb
def add(a, b):
pdb.set_trace() # デバッガーを起動
result = a + b
return result
result = add(2, 3)
print(result)
デバッガーが起動したら、以下のコマンドを使用して変数の値を確認できます。
• p variable_name (print): 変数の値を表示
• pp variable_name (pretty print): 変数の値を整形して表示
まとめ
pdb と breakpoint を使用することで、コードのデバッグが容易になります。対話型デバッガーを使用してコードの実行をステップごとに追跡し、変数の値を確認し、ブレークポイントを設定して効率的に問題を特定できます。
この記事が気に入ったらサポートをしてみませんか?