[PREVIOUS CHAPTER] [NEXT CHAPTER]
3 How to debug

3.1	How to debug (1)

in fml-support: 5282
1. check OS's maillog.
   following the check list in INSTALL file Appendix A.

2. check fml log, $DIR/log.

3. check the connection between fml and MTA, $DIR/var/log/_smtplog.

4. "makefml test ML" helps you to test fml.


3.2	How to debug (2)

From: fml-support: 01411


* Printf debug is fundamental technique. FML has $debug variable. If
you know the details of processing, set $debug = 1, which helps your
debug. If $debug is 1, FML shows all debug information.


* perl -d enables perl debugger. See perl manual for how to use it.

Example:

	% ($FML/bin/emumail.pl; echo something )|perl -d $FML/fml.pl $PWD
	....debugger starts ...
	<1> t
	<2> c
	.... debug information flood! ....


* Which file is libraries for an object?
  A lib"NAME".pl library corresponds to functions on "NAME".
  e.g. libsmtp.pl is SMTP (Simple Mail Transfer Protocol) routines.

	SMTP		libsmtp.pl

	[Naming Convention Example]
	ra  = remote administration
	fop = file operation
	...


3.3	printf debug

From: fukachan@phys.titech.ac.jp
X-Mail-Count: 00702 


For example, insert the following string.

	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 


[PREVIOUS CHAPTER] [NEXT CHAPTER]