06 Oct 2012

perl の標準デバッガと plack アプリのデバッグ

$ perl -d foo.pl

とすると gdb-like なデバッガが立ち上がるが, plack なアプリをデバッグする際も同様にできる.

perl -d <plackup へのフルパス> foo.psgi などとすればいいんだけど, フルパスは面倒なので perl -Sd plackup foo.psgi と省略できる. (plackup へ PATH が通っている前提)

フレームワークを使ったアプリになるとスタックが深くなるので,

$DB::single = 1;

などとコード側で一旦ブレイクポイントを設定しておいて, そこを足がかりにデバッグしていくといいかもしれない.

コマンド復習

  • h
    • help
  • n
    • 一行実行. 一回選ぶと次からは enter でいい
  • s
    • 関数の中に入る
  • c
    • 次のブレイクポイントまで continue
    • 数値を渡すとその行まで行く
  • p
    • 変数をプリント
  • x
    • 変数を展開してプリント
  • v
    • 周囲のコードを見る
  • b
    • ブレイクポイント設置

Ref.