python標準ライブラリpdb-The Python Debugger
3944 ワード
The Python Debugger Pythonはインタラクティブソースデバッガを備え、コードにブレークポイントを設定し、単一ステップで実行します.
デバッグスクリプト逐句デバッグ
方法
.runは、デバッガ制御の下で文を実行する.
.runevalは、デバッガコントロールの下で式をテストします(文字列形式で与えられます).runeval()が返されると、式の値が返されます.そうでない場合、この機能はrun()に似ています.
.runcall所与のパラメータ呼び出し関数 を使用する.
.set_trace()デバッガを作成します.
.post_mortem指定された遡及オブジェクトの事後デバッグを入力します.遡及が指定されていない場合は、現在処理中の例外の1つが使用されます(デフォルト値を使用する場合は、例外を処理する必要があります).
.pm()で見つける遡及の事後デバッグsysを入力.last_traceback.
デバッガクラス class pdb.Pdb(completekey=‘tab’, stdin=None, stdout=None, skip=None, nosigint=False, readrc=True)
Pdbはデバッガクラスです.詳細
デバッガコマンド h(elp) [command]
commandのヘルプ情報を参照してください. w(here)
印刷スタックトレース、現在のスタック d(own)
次のスタック情報を印刷します. u( p )
前のスタック情報を印刷します. b(reak) [[filename:]lineno | function[, condition]]
linenoパラメータを使用して、ファイルに割り込みを設定し、breakを実行します. tbreak [[filename:]lineno | function[, condition]]
一時的なブレークポイントは、最初にヒットしたときに自動的に削除されます.パラメータはbreakと同じです. cl(ear) [filename:lineno | bpnumber [bpnumber …]]
filename:linenoパラメータを使用して、行のすべてのブレークポイントをクリアします. disable [bpnumber [bpnumber …]]
スペースで区切られたブレークポイントのリストに表示されるブレークポイントを無効にします.ブレークポイントの無効化は、プログラムの実行を停止させることはできませんが、ブレークポイントをクリアするのとは異なり、ブレークポイントリストに保持され、有効にすることができます(再). enable [bpnumber [bpnumber …]]
指定したブレークポイントを有効にします. ignore bpnumber [count]
指定したブレークポイント番号の無視数を設定します.countを省略すると無視カウントは0に設定.無視カウントがゼロの場合、ブレークポイントはアクティブになります.ゼロ以外の場合、ブレークポイントに達するたびにカウントは減少し、ブレークポイントは無効にされず、関連条件の計算結果はtrueになります. condition bpnumber [condition]
Conditionは、ブレークポイントが受け入れられる前にtrueとして評価する式です.条件が存在しない場合は、既存の条件を削除します.すなわち、ブレークポイントは無条件である. commands [bpnumber]
ブレークポイント番号bpnumberのコマンドリストを指定します.コマンド自体が次の行に表示されます.コマンドを終了するには、「end」のみを含む行を入力します. s(tep)
現在の行を実行し、最初の可能な場合に停止します(呼び出された関数または現在の関数の次の行で停止します). n(ext)
現在の関数の次の行に達するか、戻るまで実行を続けます. unt(il)
行番号が現在の行より大きい行に達するか、現在のフレームから戻るまで実行を続けます. r(eturn)
現在の関数が戻るまで実行を続けます. c(ont(inue))
ブレークポイントが発生した場合にのみ停止するように実行を続行します. j(ump) lineno
実行する次の行を設定します. l(ist) [first[, last]]
現在のファイルのソースコードを一覧表示します. a(rgs)
現在の関数のパラメータのリストを印刷します. p expression
現在のコンテキストの式を評価し、その値を印刷します. pp expression
pコマンドと同様に、式の値を除いてpprintモジュールを使用してきれいに印刷されます. alias [name [command]]
コマンドを実行するためにnameという別名を作成します. unalias name
指定した別名を削除します. [!]statement
現在のスタックフレームのコンテキストで(1行)文を実行します.文の最初の単語がデバッガコマンドに似ていない限り、感嘆符は省略できます.グローバル変数を設定するには、割り当てコマンドのglobalの前に同じ行のコマンドを追加します.たとえば、次のようにします. run [args …]
デバッグしたPythonプログラムを再起動します. q(uit)
デバッガを終了します.実行中のプログラムは中止されました.
デバッグスクリプト
python -m pdb filename.py
方法
.run
.runeval
.runcall
.set_trace()
.post_mortem
.pm()
デバッガクラス
Pdbはデバッガクラスです.詳細
デバッガコマンド
commandのヘルプ情報を参照してください.
印刷スタックトレース、現在のスタック
次のスタック情報を印刷します.
前のスタック情報を印刷します.
linenoパラメータを使用して、ファイルに割り込みを設定し、breakを実行します.
一時的なブレークポイントは、最初にヒットしたときに自動的に削除されます.パラメータはbreakと同じです.
filename:linenoパラメータを使用して、行のすべてのブレークポイントをクリアします.
スペースで区切られたブレークポイントのリストに表示されるブレークポイントを無効にします.ブレークポイントの無効化は、プログラムの実行を停止させることはできませんが、ブレークポイントをクリアするのとは異なり、ブレークポイントリストに保持され、有効にすることができます(再).
指定したブレークポイントを有効にします.
指定したブレークポイント番号の無視数を設定します.countを省略すると無視カウントは0に設定.無視カウントがゼロの場合、ブレークポイントはアクティブになります.ゼロ以外の場合、ブレークポイントに達するたびにカウントは減少し、ブレークポイントは無効にされず、関連条件の計算結果はtrueになります.
Conditionは、ブレークポイントが受け入れられる前にtrueとして評価する式です.条件が存在しない場合は、既存の条件を削除します.すなわち、ブレークポイントは無条件である.
ブレークポイント番号bpnumberのコマンドリストを指定します.コマンド自体が次の行に表示されます.コマンドを終了するには、「end」のみを含む行を入力します.
(Pdb) commands 1
(com) print some_variable
(com) end
(Pdb)
現在の行を実行し、最初の可能な場合に停止します(呼び出された関数または現在の関数の次の行で停止します).
現在の関数の次の行に達するか、戻るまで実行を続けます.
行番号が現在の行より大きい行に達するか、現在のフレームから戻るまで実行を続けます.
現在の関数が戻るまで実行を続けます.
ブレークポイントが発生した場合にのみ停止するように実行を続行します.
実行する次の行を設定します.
現在のファイルのソースコードを一覧表示します.
現在の関数のパラメータのリストを印刷します.
現在のコンテキストの式を評価し、その値を印刷します.
pコマンドと同様に、式の値を除いてpprintモジュールを使用してきれいに印刷されます.
コマンドを実行するためにnameという別名を作成します.
指定した別名を削除します.
現在のスタックフレームのコンテキストで(1行)文を実行します.文の最初の単語がデバッガコマンドに似ていない限り、感嘆符は省略できます.グローバル変数を設定するには、割り当てコマンドのglobalの前に同じ行のコマンドを追加します.たとえば、次のようにします.
(Pdb) global list_options; list_options = ['-l']
(Pdb)
デバッグしたPythonプログラムを再起動します.
デバッガを終了します.実行中のプログラムは中止されました.