1. HOW TO MAKE A GOOD BUG REPORT.
-----------------------------------------------------------

I need some information about your machine to fix bug, 
you found...

=========>Example:<==========

Machine platform:   i386 (PII-600)
OS name/version:    FreeBSD 4.3-RC
Compiler n/v:	    gcc version 2.95.2 19991024 (release)
IServerd version:   IServerd-1.6.2 (01.12.2000)
PostgreSQL version: 7.1
Error type:	    reproduceable
Short description:  segmentation fault in event-processor
Trigger:	    after login (or logoff) event processor exit on signal 11
Fix:		    -

=============================

Also I need your config.cache and config.log files
If you have changed config file - send it to me 
(don't forget to remove your passwords - I have too much my own)
Also you can set loglevel and debuglevel to 200 and send me result log files.

!!! On segmentation fault check for /tmp/isd-crashdump.txt file with additional 
crash information.


2. HOW TO GET INFORMATION FROM CORE
---------------------------------------------------------

You may also find that a core file appeared in a server root directory 
This file is the most useful tool for tracking down the bug. But is it 
usefull only if have compiled iserverd with debug information 
(./configure ... --with-debug ). To use it you do this:

gdb iserverd core

adding appropriate paths to iserverd and core so gdb can find them. If you
don't have gdb then try "dbx". Then within the debugger use the
command "where" to give a stack trace of where the problem
occurred. Include this in your mail. Also you can try "backtrace" 
command.

If you known any assembly language then do a "disass" of the routine
where the problem occurred (if its in a library routine then
disassemble the routine that called it) and try to work out exactly
where the problem is by looking at the surrounding code. Even if you
don't know assembly then incuding this info in the bug report can be
useful. 


3. ATTACHING TO A RUNNING PROCESS
---------------------------------------------------------

Unfortunately some unixes (in particular some recent linux kernels)
refuse to dump a core file if the task has changed uid. To debug 
with this sort of system you could try to attach to the running 
process using "gdb iserverd PID" where you get PID from
pid-file. Then use "c" to continue and try to cause the core dump. 
The debugger should catch the fault and tell you where it occurred.
Also you can get information about iserverd hung using this technicue.


4. PATCHES
---------------------------------------------------------

The best sort of bug report is one that includes a fix! If you send us
patches please use "diff -u" format if your version of diff supports
it, otherwise use "diff -c4". Make sure your do the diff against a
clean version (make distclean) of the source and let me know exactly 
what version you used. 

