2010年11月25日木曜日

kayでのデバッグ(トレース)方法

例外発生時のデバッグ

kay で例外が発生した場合、Werkzeug のデバッガが動きブラウザー上で例外発生時のトレースバックを表示する。

参考 Kayキュメント デバッグ

Werkzeug内でコンソールを使用して、Pythonコードの実行も可能。


例外発生時以外でのデバッグ

例外発生時以外でデバッグしたい場合は、pdb を利用する。

「利用方法」
  • トレースしたい箇所に、set_trace() を挿入する
  • ソース上には、from kay.utils import set_trace も追加する
  • 開発環境でアプリケーションを動かし、動作が指定箇所に届くと、コマンド・プロンプト上でpdbが起動する

pdbでよく使うコマンド
コマンド引数説明
s(tep)ステップを実行(ステップイン)
呼び出し関数などがあった場合、その中のステップも実行
n(ext)ステップを実行(ステップオーバー)
呼び出し関数などがあっても、現関数内でステップ実行
r(eturn)現在の関数が返るまで実行
p変数を表示
l(ist)first, last引数が無い場合は、現在行を中心に11行ソースを表示(もしくは前に表示したリストの続きを表示)
第一引数がある場合は、表示開始行を指定
第二引数がある場合は、表示終了行を指定。第二引数が第一より小さい場合、カウントと解釈する
第一と第二引数の間にはコンマを入れる
b(reak)lineno 引数がある場合は、引数の行番号にブレークポイントを設定
引数が無い場合は、ブレークポイント一覧を表示
tbreaklineno一時的なブレークポイントで、最初にそこに達したときに自動的に取り除かれる
cl(ear)bpnumber引数のブレークポイント番号を解除する
c(ontinue)ブレークポイントまで実行する
q(uit)デバッガ終了

参考 Python ライブラリリファレンス デバッガコマンド


下はpdbの画面例、26行目にset_trace()が挿入してある。
listコマンドを実行したところ、矢印は現在実行行、Bはブレークポイント設定行。
pdb001.JPG