REPORTING-BUGS 
---------------

This file will contain information for reporting problems with ezbounce.

Ideally, ezbounce would never crash and have less than 3 very minor bugs.
Unfortunately, this has not been the case :)

Please send bug reports to the author at druglord@freelsd.org

At the very least please include:

	- Description of the problem and whether/how you can
 	  reproduce it.
	- Detailed information about the system, including OS
	  version, compiler version, network setup, etc.
	- Compiler warnings and error messages (if any)
	- What version of ezbounce you are using.


Also, if you think it is relevant you may include:

	- Versions of IRC Clients or other software being used.
	- Your ezb configuration file (feel free to remove passwords, 
	  hostnames, etc)
	- The ezbounce logfile.
	- A stacktrace (if you don't know how to get one, see below)


Detailed Debugging: Core Dumps & Stack Traces

	We can get the most detailed debugging information using core 
	dumps and a debugger like GDB. 

	If ezb crashes, hopefully it will produce a core dump (unless
	you're using a crappy system like CYGWIN32 or you have core dumps
	disabled -- type 'ulimit -c 99999999' to try and reenable them)

	At this point you have some options:

	* To just get a stack trace:
	
		gdb ezbounce core
		(once in gdb)
		(gdb) bt


	  You should get output like this:
	
	  	#0  0x8055850 in conn::parse_from_server ()
		#1  0x8053b54 in conn::server_sock::on_readable ()
		#2  0x806448e in pollsocket::poll_all ()
		#3  0x80614f6 in start_proxy ()
		#4  0x805c05f in main ()
		#5  0x8049891 in _start () 
	
	  Easy, no? Just email me the output and I'll have a better
	  of where the problem is.
	
	
	* You can also just send me your core dump (AND ezbounce 
	   executable binary)

	  This will save you the 2 minutes of trouble running gdb :)

	  However, it may not suitable for some people concerned about
	  privacy, as the core dump technically contains everything in 
	  ezb's memory, including channel names, passwords, nicknames,
	  addresses, etc. I can give you my word about respecting
	  your privacy; however, the risk always exists of a third party
	  snooping and discovering your IRC secrets. So, it's your call.

    	  NOTE! Without the ezbounce binary, the core dump is 
	  worthless. SO PLEASE DON'T FORGET TO SEND THE BINARY.

	
	* (Most useful) you can also compile and run with debugging
	  information.

	  Building ezb with debugging information will produce the most
	  detailed (and huge) core dumps, describing right down to the
	  very line of code that caused the crash.

	  To do this:

	  ./configure --enable-debug [other options, if you want]
	  make clean all

	  Then run as normal. Note that there will be a tremendous amount 
   	  of debugging information printed to stdout as well as the 
	  logfile. 

	  Once you get it to crash and produce a core dump, run gdb. It 
	  will tell you what line caused the crash. Send me this data, as 
	  well as the stacktrace.

   	  Of course you can also just send me the ezbounce binary and core 
	  dump. 
	  	
 
	* (Last option) Debug it yourself.
	  
	  Some users will be competent C or C++ 
	  programmers and may be compelled to inspect data members and
	  analyze memory and what not with debugger. Debugging is a 
	  joyous activity for programmers worldwide :) Feel free to do
   	  this and send me a patch :)


If you're still confused, email me and I'll try to help. When I get around 
to it, hopefully one day there will be a mailing list or webboard for such 
things. 
