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