pdbのデバッガコマンド
とりあえず自分用に。あとでちゃんとまとめ直す...かも。
コマンド
- 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減らす)
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の順に読み込まれる