[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]