今読んでる本、CGIプログラミング第2版ですが、いよいよ終盤です。
第15章 CGIアプリケーションのデバッグまで読み進めてきました。
Perlデバッガのコマンド表にあるコマンドを試しています。
b[ 行番号| サブルーチン名]コマンドでカレント行、指定行、指定サブルーチンへブレークポイントを設定できました。
今度は
d[ 行番号| サブルーチン名]コマンドでブレークポイントを削除しようとしたのですが、削除できていませんでした。
何度試しても先ほど設定したブレークポイントで停止してしまいます。
さらに引数として行番号やサブルーチン名を与えたときは次のエラーが発生します。
Number found where operator expected at (eval 5)[/usr/lib/perl5/5.8.0/perl5db.pl:17] line 2, near "d 5"
eval '($@, $!, $^E, $,, $/, $\\, $^W) = @saved;package main; $^D = $^D | $DB::db_stop;
d 5;
;' called at /usr/lib/perl5/5.8.0/perl5db.pl line 17
DB::eval called at /usr/lib/perl5/5.8.0/perl5db.pl line 1323
DB::DB called at try line 4
(Do you need to predeclare d?)
eval '($@, $!, $^E, $,, $/, $\\, $^W) = @saved;package main; $^D = $^D | $DB::db_stop;
d 5;
;' called at /usr/lib/perl5/5.8.0/perl5db.pl line 17
DB::eval called at /usr/lib/perl5/5.8.0/perl5db.pl line 1323
DB::DB called at try line 4
syntax error at (eval 5)[/usr/lib/perl5/5.8.0/perl5db.pl:17] line 2, near "d 5"
またDコマンドは全ブレークポイントを削除するそうですが、これも効きませんでした。
本件について、何か情報をお持ちの方、教えてくださいm(__)m
お礼
osamuyさん、お察しのとおり、私の5.8.0ではdコマンドは存在しませんでした。 bで作成したブレークポイントはBで削除するのでした。 5.6.1のperldebugを読んだところ、こちらではdコマンドが健在するようです。 途中でコマンドが変わっていたのですね。 しかし、これは上位互換を重んじるラリーの思想に反するような^^