SimuBugCatcher is a utility program which submits automatically generated bug reports to a FogBugz installation.
A quick overview of how our bug crash detection and tracking system works.
Application Code and Compiling:
- Applications compile against BugSlayer.lib and require BugSlayerUtil.dll
- In the code, in the beginning of main(), applications set dump settings (Application Name, interactivity flag, Project Name). Project name is hard coded, but we manually change this on some source code branches.
- The application sets up a structured exception handler try/catch and registers a handler for the STL runtime checks.
Events during a crash:
- Application throws a structured exception
- Try/catch block executes the handler in BugSlayerUtil.dll
- A log file is written containing the particulars of the crash and information about the system
- A minidump of the process is written to a file
- The SimuBugCatcher executable is started with command line parameters specifying location of files and FogBugz project name
- SimuBugCatcher uploads the minidump to the dump analyzer web page and records the response text
- SimuBugCatcher then uploads the log file and the minidump to a custom? FogBugz bug submission web page
Creating a new FogBug or editing an existing one triggers an e-mail to the person to whom the bug is assigned. The bug submission page assigns the bug to the default contact for the project.
Notes: URL to dump analyzer and bug submission page are hard coded into SimuBugCatcher. Also hard coded is the expected data the submission page requires.
Command line options
It understands these command line options and arguments:
- the '/r' option tells SimuBugCatcher to remove the bug report file after attempting to send it.
- the '/i' option tells SimuBugCatcher to collect data from the user interactively. (Only used on non-server product invocations, such as HeroBlade and RepositoryBrowser.)
- the '/p' option indicates which fogBugz PROJECT this crash should be filed under.
After processing each option, the remaining command line parameters are interpreted thusly:
- Argument #1
- the crash TAG. This ends up as the SUBJECT of the FogBugz. e.g.: HeroBlade.exe: exception occurred while ...
- Argument #2
- the crash LOG filename. This ends up as the explanatory text of the FogBugz that is submitted. In interactive mode, the text the user enters, along with email address, is also included with this text.
- Argument #3
- optional, the crash DUMP filename. This file, when present, it automatically uploaded to the Fogbugz server as a separate bug-item attachment.