Your bug report should include:
Read How to Report Bugs Effectively (Third Party Site) to learn how to effectively report bugs.
Please use the following as a guideline for choosing severity levels for bugs on the bug tracker:
The bug tracker does not support inline insertion of attached images the way the forum does nor does it support the use of the [img] tag for inline insertion of images eg. [img]<http://img178.imageshack.us/img178/8352/myimage.png[/img>]. You can add images to a report/comment by either attaching the individual image files or including image(s) in an archive file eg. Shareaza_error_report_090224-053106.zip
BugTrap is a newly implemented feature in current code debug builds introduced on 2009-02-22, revision 7705. It is a replacement for the previously used DrWatson? that can generate useful debugging information for assertion errors and crashes including error/crash logs for inclusion in bug reports.
An email address/BugTrap server has not been set up as yet for this feature in debug builds to automatically submit bug reports for assertion errors and crashes. Please log bug reports manually on the bug tracker by attaching the generated BugTrap error report zip file.
BugTrap in current debug builds gives you the option to creates crash/error logs locally on your PC for both assertion errors and crashes. BugTrap generates a zip archive file e.g. Shareaza_error_report_090224-053106.zip with 3 files inside: crashdump.dmp (Dr.Watson minidump), errorlog.xml (modules list, version info etc.) and settings.reg (HKCU\Software\Shareaza key dump).
BugTrap, specifically dbghlp.dll uses Microsoft Symbol Server. With it, users can download symbols from Microsoft for system DLLs to produce detailed call stack logs. You must ad the environment variable _NT_SYMBOL_PATH = SRVC:\WINDOWS\SYMBOLShttp://msdl.microsoft.com/download/symbols to Windows in order for this feature to work correctly.
You can add the environment variable by:
You can produce a test crash (Access Violation error) and test BugTrap error reports in a current debug build of Shareaza by:
If [BugTrap] is not working correctly for you in generating all 3 files (crashdump.dmp, errorlog.xml, settings.reg) in the zip archive check the following:
An assertion error is not a crash. An "assertion" is coding put into the program to make sure that code inputs are generated as expected and that the code is on the right track. When the program is running, it will throw up an assertion error if one of the coded "assertion checks" fails. Typically assertions are only processed in debug mode (when running a debug build) so that developers can identify and fix serious errors in the program before compiling an optimized release version.
If you are not running a current debug build and are experiencing crashes with an older build of Shareaza, you should install a ["Development, Bug Reporting, and Debug Builds" current debug build].
If a current debug build throws an assertion error or crashes, you will get the following BugTrap dialog box.
It is very important to note the "Exception Reason" which is highlighted below and is used in helping us identify and differentiate errors.
Two things you will need to do with this dialog box:
e.g. Shareaza.exe caused ACCESS_VIOLATION in module "D:\Program Files\Shareaza\Shareaza.exe" at 001B:00D5E268, CAboutDlg::OnRButtonDown()+152 byte(s) in "d:\documents and settings\george\my documents\visual studio 2008\projects\shareaza\shareaza\dlgabout.cpp", line 165+3 byte(s)
e.g. Shareaza_error_report_090324-062151.zip
If you forget to select and copy the "Exception Reason" text in the dialog box for inclusion in your bug report, or you want to check the "Exception Reason" information of a [BugTrap] error report submitted by someone else, you can go into the BugTrap error report zip file and view the errorlog.xml file. Look for the <error> block to find the "Exception Reason" information.
e.g.
<error> <what>ACCESS_VIOLATION</what> <process> <name>Shareaza.exe</name> <id>3956</id> </process> <module>D:\Program Files\Shareaza\Shareaza.exe</module> <address>001B:00D5E268</address> <function> <name>CAboutDlg::OnRButtonDown</name> <offset>152</offset> </function> <file>d:\documents and settings\george\my documents\visual studio 2008\projects\shareaza\shareaza\dlgabout.cpp</file> <line> <number>165</number> <offset>3</offset> </line> </error>
The "Exception Reason" information is used for two things
If the "Exception Reason" specifies a "BREAKPOINT" error then this tells you that this is an assertion error. If the "Exception Reason" specifies any other error, e.g. "ACCESS_VIOLATION" error, then this tells you that this is a crash.
Exceptions are identified by the error type, the file, line number of the error. For example an appropriate label for an assertion error report would be "BREAKPOINT - librarymaps.cpp - line 131" or for a crash report "ACCESS_VIOLATION - dlgabout.cpp - Line 165".
With exceptions, even if the actions leading to the error or the error log files generated vary, we still post all related instances under the one bug report. All relevant error logs and information should be posted under the same bug report for the same exception (assertion error or crash). Note that even though the error might be occurring in the same part of the code each time, the observed actions/behaviors leading to the error may well vary. It is important to note variations in actions/behaviors leading to the error.
Check to see if the particular exception you are getting has already been reported in a bug report on the bug tracker.
If it is already reported, you can add your information and [BugTrap] error report zip to the existing bug report in a new comment making sure you specify the build you are using (e.g. r7760).
If it is not reported, create a new bug report adding your information and BugTrap error report zip. It is also helpful if you can include the "Exception Reason" information as this will help everyone more easily confirm/identify the error and help avoid the creation of duplicate bug reports.
If you are still unsure as to whether your bug does or does not correspond to an already existing bug report, just create a new one. The development team will look through the bug reports and determine if it is a duplicate.
Use a free program called DebugView from Sysinternals to capture a debug log.
The reporting process is the same as that listed above for exceptions.