[PREVIOUS CHAPTER]
[NEXT CHAPTER]
3 デバッグの HOW-TO
3.1 How to debug (1)
in fml-support: 5282
3.2 How to debug (2)[デバッグのポイント]
From: fml-support: 01411
…略…
○ 私 printf デバッグがすきなので $debug = 1; にした時の画面に出るエラー
情報から推測するのが多いです。
もしくは
○ perl -d オプションで perl debugger を使う
Example:
% ($FML/bin/emumail.pl; echo something )|perl -d $FML/fml.pl $PWD
....debugger starts ...
<1> t
<2> c
.... debug information flood! ....
○ どのファイルか?は目的別なのでそれっぽい名前のことが多いですが…
基本関数 fml.pl
SMTP libsmtp.pl
その他 lib(それっぽい名前).pl
[Naming Convention Example]
ra = remote administration
fop = file operation
...
とか省略系もあるけど…
3.3 古典の printf debug の例
From: fukachan@phys.titech.ac.jp
X-Mail-Count: 00702
例えば次のような適当な printf 構文をつっこむ
print STDERR "REQ:GUIDE $Envelope{'req:guide'}";
&InitConfig; # initialize date etc..
&Parsing; # Phase 1(1st pass), pre-parsing here
&GetFieldsFromHeader; # Phase 2(2nd pass), extract headers
のあいだにはさんで、
print STDERR "REQ:GUIDE $Envelope{'req:guide'}";
&InitConfig; # initialize date etc..
print STDERR "REQ:GUIDE $Envelope{'req:guide'}";
&Parsing; # Phase 1(1st pass), pre-parsing here
print STDERR "REQ:GUIDE $Envelope{'req:guide'}";
&GetFieldsFromHeader; # Phase 2(2nd pass), extract headers
print STDERR "REQ:GUIDE $Envelope{'req:guide'}";
とかしておいて、
% perl sbin/localtest.pl |sed 's/test/#guide/' | perl fml.pl $PWD -d
とかして、この REQ:GUIDE の値の変化をみるというのはどうでしょう?
ただしいばあいは &Parsing のあと 1になって そのままのはずですよね
[PREVIOUS CHAPTER]
[NEXT CHAPTER]