SmartInspect Professional

Identify Bugs & Find Solutions

Mike Riley

October 30, 2009

4 Min Read
ITPro Today logo in a gray background | ITPro Today

asp:review

 

SmartInspect Professional

Identify Bugs & Find Solutions

 

By Mike Riley

 

In today s world of interconnected everything,expectations of application stability, analysis, and notification areconsistently elevated, along with the rapid response to a bug or security flaw.However, such reactive practices often leave those responsible for the codewondering why a particular problem occurred. If the application was notproperly architected with mechanisms to inspect, trap, and report potentialproblems, the time required to isolate the reasons behind the issues furtherextends the repair time necessary to eradicate them.

 

Gurock Software, the creators of SmartInspectProfessional, recognized this reality of the new world and forged a solutionthat not only works on a local machine level but also via distributed TCP/IPconnectivity with minimal impact to the machine s resources. By doing so,Gurock has architected the ability to instrument an application not only fortesting purposes but also for ongoing use in a .NET, Delphi, or Javamulti-threaded application production environment. One approach to this mightbe to leave the SmartInspect code in the released application with an option toenable or disable it to facilitate remote internal analysis and debugging. Forexample, if a customer is having an application die randomly, they could beinstructed to activate the debug switch and, with their permission, have theapplication transmit its active state via TCP/IP to the SmartInspectProfessional Console for persistent logging until the problem is filtered,quickly identified, and eliminated. Likewise, those developers intent onminimizing any impact to network traffic and execution performance can dumpdebug output to a log file for later importation into the Console. Thisactivation switch for capturing log data is as easy as setting theSiAuto.Si.Enabled run-time property to true.

 


Figure 1: The SmartInspect ProfessionalConsole is the heart of the product, where log entries and tagged applicationvariables, threads, and processes are displayed, filtered, and analyzed inexquisite detail.

 

The product, which includes its full source code, is easyto use, well documented, and quick to implement. After adding the SmartInspectlibraries and compiling the logic to call upon these now embedded debuggingfunctions, the majority of time with SmartInspect is spent working within theConsole. With its clean and intuitive interface, the Console is the heart ofSmartInspect and can be configured at the time of the product s installation towork within the Visual Studio.NET, Delphi, and JBuilderIDEs, as well as its default standalone mode. Unfortunately, in order for theproduct to work its magic, the SmartInspect functions must be compiled into theapplication being monitored. While this is an obvious requirement, itnevertheless means that developers and testers can t simply point SmartInspectat any application and start monitoring its state. Although products do existthat can perform this function, they are considerably more expensive and moreinvasive on the underlying operating system and can sometimes have aconsiderable impact on system-wide performance. By architecting SmartInspectcapabilities into the application at design time, its benefits continue to accruethroughout the application s lifecycle. For the curious, the magic behind thesimplicity of SmartInspect is explained online at http://www.gurock.com/products/smartinspect/howitworks/.

 

As the SmartInspect objects are called upon within arunning application, they can transmit information ranging from variable valuesand messages to objects, images, and files. This information can then betransmitted to multiple tiers of the development organization via the Console sexport to CSV and HTML XML, as well as forwarding logs from the Console via e-mailattachments. Logs can also be annotated with comments for future review oradditional distributed analysis and notation. Regardless of the log capturetechniques employed, the Console can apply up to nine views on the output,ranging from source code to Web view.

 

One of SmartInspect s most helpful features is its abilityto isolate thread analysis. This benefit alone is worth the price of theproduct. Any developer who has struggled to debug an application servinghundreds, perhaps even thousands, of users simultaneously trying to debugindividual threads with a standard debugger knows how challenging and tedioussuch a task would be. Enable SmartInspect s process flow with AutoView rulesand each newly created thread can be closely monitored throughout the thread slifespan for any anomalies.

 


Figure 2: The Process Flow Toolboxis indispensably helpful for multi-threaded, multi-process applicationdebugging analysis.

 

SmartInspect makes such capabilities seem so obvious in astandard debugger that once you re used to the immediacy and accessibility todetails, it s hard to imagine not using its libraries as standard procedure forall .NET development.

 


Figure 3: SmartInspect ships withexcellent online help detailing the program s use and programming libraries.

 

The price is right, as are the licensing terms, and theadded bonus of the product s source code means that buyers can review andmodify the application for their own customized needs. Serious developersworking on serious projects that are being deployed in highly distributedenvironments should consider this serious tool for their future .NET, Delphi, andJava debugging and troubleshooting needs.

 

MikeRiley is anadvanced computing professional specializing in emerging technologies and newdevelopment trends. Readers may contact him at mailto:[email protected].

 

Rating:

Web Site: http://www.gurock.com/products/smartinspect/

Price: US$229

 

 

Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like