Manage Delphi Bug Reports in the Cloud

Habarisoft announces a preview release of the next generation of madxnet, a cloud-based bug report management system for users of the madExcept exception handler for Delphi.

Features:

  • Cloud based bug report database (but also runs in Intranets)
  • Automatic detection of duplicates
  • Automatic creation of screen shot thumbnails
  • REST API to retrieve and manage bug reports
  • JSON based data serialization

How it works

The madExcept exception handler for Delphi can be configured to send bug reports by HTTP POST requests to a web server, including detailed information and a screenshot (for a complete code example see below).

The madxnet server will store the bugreport and can also return a HTTP redirect, which causes madExcept to automatically launch the web browser to display a ThankYou page with information about the new report.

Online Resources

Bug Reports

The bug report will be accessible (in JSON format) as a REST resource:

{
 "bugreport":{
 "bugreportTxt":null,
 "callstackCRC":"$8eafc433",
 "content":"date/time         : 2011-03-31, 09:59:03, 730ms\r\ncomputer name     : MJ-PC\r\nuser name         : mj\r\nregistered owner  : mj / HP...,
 "dateTime":"2011-03-31T10:07:12Z",
 "exceptionClass":"EOutOfMemory",
 "exceptionMessage":"Out of memory.",
 "executable":"MadXSender.exe",
 "id":"79001",
 "mailBody":"please find the bug report attached",
 "mailFrom":"sender@example.com",
 "mailSubject":"bug report",
 "mailTo":"to@example.com",
 "received":"2011-03-31T08:07:17.033Z",
 "screenshot":null,
 "screenshotBytes":"",
 "stack":"0051293a +11e MadXSender.exe MainFrm    115 +27 TMainForm.DoRaise\r\n005132ad +031 MadXSender.exe MainFrm    234  +6 TMainForm.BtnRaiseClick\r\n004a3167 +06f MadXSender.exe Controls           TControl.Click",
 "thumbnail":null,
 "thumbnailBytes":""
 }
}

Browse all Bug Reports

The URL http://madxnet2.appspot.com/resources/bugreports will return a JSON object with the first page of all bug reports in the database.

The URL http://madxnet2.appspot.com/resources/bugreports?page=3 will return the bug reports for the given page number.

Executables List

The URL http://madxnet2.appspot.com/resources/executables returns the list of all executables with their report count. Example:

{
 "page":"0",
 "total":"2",
 "executables":[
 {
 "exeName":"MadXSender.exe",
 "id":"18001",
 "reportCount":"1096"
 },
 {
 "exeName":"TestApp.exe",
 "id":"83001",
 "reportCount":"10"
 }
 ]
}

Exceptions List

The URL http://madxnet2.appspot.com/resources/exceptions returns the list of all exceptions with their report count. Example:

{
 "page":"0",
 "total":"11",
 "exceptionClass":[
 {
 "className":"EConvertError",
 "id":"20001",
 "reportCount":"118"
 },
 {
 "className":"EDivByZero",
 "id":"22001",
 "reportCount":"112"
 },
 {
 "className":"EAbstractError",
 "id":"24001",
 "reportCount":"111"
 },
 {
 "className":"EInvalidCast",
 "id":"25002",
 "reportCount":"111"
 },
 {
 "className":"EOSError",
 "id":"32001",
 "reportCount":"111"
 },
 {
 "className":"EInOutError",
 "id":"26002",
 "reportCount":"110"
 },
 {
 "className":"EOutOfMemory",
 "id":"10002",
 "reportCount":"109"
 },
 {
 "className":"EAccessViolation",
 "id":"26001",
 "reportCount":"109"
 },
 {
 "className":"EProgrammerNotFound",
 "id":"30001",
 "reportCount":"109"
 },
 {
 "className":"EStringListError",
 "id":"36001",
 "reportCount":"109"
 },
 {
 "className":"EInvalidCast",
 "id":"28001",
 "reportCount":"1"
 }
 ]
}

Duplicate Detection

Every incoming bug report will be compared with existing reports to find if it is a duplicate of an existing report. This comparision is performed based on the bug report CRC checksums. If an older bugreport with the same CRC checksums is found in the database, its ID is stored as a reference in the new report.

What’s next?

It depends on your feedback – let me know what you think about this web service.

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s