|
Among the more important programming tools used to help developers to create and maintain .Net applications are the debugger and tracer. Although the terms "Debugger" and the "Tracer" might be well known, many people are unfamiliar with the differences between these two approaches.
Definitions
Debugger - Instrument that helps to observe, locate, identify, and correct bugs. It executes the program step-by-step by pausing the application, examining the current state and tracking values of some variables.
Tracer - Instrument that monitors and logs program activities. The aim is to reconstruct the activity of the program step by step to find errors in an application. The tracer is a special form of debugger that keeps track of the health and sanitary conditions of applications as they run.
Pros and Cons |
| Debugger |
| Tracer |
 | Provides detailed information |
 | Changes the internal timing of a software program |
 | Very difficult to track down problems in complex multi-threaded systems |
|
 | Provides detailed information (data, sequence and time of method calls) |
 | ossible to track down problems in complex multi-threaded systems |
 | Does not summarizes information (a lot of information is shown) |
|
Conventional tracer vs. SpeedTrace Pro |
| Other tracers |
| SpeedTrace Tracer |
 | Addition of trace statements |
 | Slow down applications radically |
 | No time dimension information available |
|
 | Reduction of trace statements through data trace |
 | Marginally slows down applications |
 | Provides information on the time dimension |
|
Debugging in .NET
Debugging is a standard tactic used when developing .Net applications. With the release of Visual Studio .NET this practice has become obsolete in the .Net environment. Once an application is deployed to the client, debugging cannot be used without installing Remote Debugging tools, a practice frowned upon by system administrators on account of security issues. Therefore, one way to bridge this gap is to use a built-in .NET tracer tool like SpeedTrace.
Debugging can be the most wearisome part of the software development cycle. The amount of bugs found or created in programs may increase the complexity of the sofware to be developed and lead to unnecessary time and budget consumption. Therefore, debugging is the perpetual task required by .Net developers to constantly monitor and eliminate bugs.
The best way to keep an eye on bugs is to perform unit testing. However, when this test reports a failure, it never answers the basic questions (why, how and what) and, without having their problems solved, developers later need to trace the execution process to see what went wrong. Therefore ...
Tracing in .NET
Tracing is a very powerful technique in skilled hands, because it provides the complete context of the .Net application in runtime allowing you to perform a deeper and more accurate analysis efficiently.
|