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
- ブレイクポイント設置