読者です 読者をやめる 読者になる 読者になる

pdbのデバッガコマンド

python

とりあえず自分用に。あとでちゃんとまとめ直す...かも。

コマンド

h(elp) [command]
コマンドのヘルプを表示。引数なしで利用可能コマンド一覧を表示|
s(tep)
一行実行(ステップイン)
n(ext)
一行実行(ステップオーバー)|
unt(il)
(Python2.6から)行番号が現在行より大きくなるか、現在のフレームから戻るまで実行|
r(eturn)
returnされるまで実行(ステップアウト)
c(ontinue)
次のブレークポイントまで実行
j(ump) lineno
次に実行する行を指定。最も底のフレームでのみ実行可能。forやfinallyなどの中には飛び込めない
l(list) [first[, last]]
ソースコードを表示。引数なし 前後11行。引数一つ その行から11行。引数二つ 与えられた範囲行。
a(rgs)
現在の関数の引数リストをプリント
p expression
現在のコンテキストでexpressionを評価しプリント
pp expression
pprintで例外の値が整形される以外はpと同じ
w(where)
スタックトレースの表示
u(up)
フレームの移動
d(down)
フレームの移動
b(break [[filename
] lineno | function [, condition]]:ブレークポイントを設置

break (ファイル名:) 行番号(, 条件式) または 関数名(, 条件式)
filename: hoge.py:50 のようにするとhoge.pyの50行目にブレークポイント設置
lineno 現在のファイルの指定した場所に設置
function その関数の中の最初の実行可能文に設置
第二引数を指定した場合、その値は式で、その評価値が真でなければブレークポイントは有効にならない(条件付きブレークポイント

tbreak

一時的なブレークポイント。引数はbreakと同じ。

disable [bpnumber [bpnumber ...]]

ブレークポイントを一時無効化

enable [bpnumber [bpnumber ...]]

ブレークポイントを有効化

cl(ear) [filename:lineno | bpnumber [bpnumber ...]]

ブレークポイントを削除

ignore bpnumber [count]

与えられたブレークポイントに通過カウントを設定
countを省略すると0に設定される
通過カウントがゼロになるとブレークポイントが機能する状態になる
(つまりゼロになるまでは無視し続け、通過するたびにカウントを1減らす)

condition bpnumber [condition]

指定したブレークポイントに条件を設定する
引数を与えなければ逆にそのブレークポイントの条件を解除する

commands [bpnumber]

(Python2.5から)
コマンドのリストを指定

alias [name [command]]

コマンドにエイリアスをつける

unalias name

指定したエイリアスを削除

[!]statement

その場でstatementを実行。
listなどといったデバッガコマンドと名前がかぶるものは感嘆符をつけることで
実行可能となる

run [args ...]

(Python2.6から)
デバッグ中のプログラムを再実行
引数が与えられるとshlexで分割され、結果が新しいsys.argvとして使われる。
ヒストリー、ブレークポイント、アクション、デバッガーオプションが引き継がれる
restartはrunのエイリアス

q(uit)

実行中のプログラムを中断してデバッガを終了

その他いろいろ
  • 何も入力しないでエンターをタイプすると、直前のコマンドを繰り返す
  • 複数コマンドを実行する場合はセミコロン2つで分割
  • .pdbrcをホームディレクトリまたはカレントディレクトリに置くことで初期設定が可能

ホームの.pdbrc > カレントの.pdbrcの順に読み込まれる