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 を使用することで、コードのデバッグが容易になります。対話型デバッガーを使用してコードの実行をステップごとに追跡し、変数の値を確認し、ブレークポイントを設定して効率的に問題を特定できます。

この記事が気に入ったらサポートをしてみませんか?