class Alon : public CPP, public Architecture

June 30, 2014

After a vast investment and hard work, we are more than proud to release OzCode Version 1.0. OzCode is an innovative debugging Visual Studio extension. Once you start debugging with OzCode you will not want to go back and debug without it. Like any other productivity tool, OzCode saves you time and effort. OzCode provides a debugging toolbox. The debugging process is a cognitive task that requires you to be patient, have a good knowledge of the system, have a deep understanding of the software being debugged and of course know the debugger abilities and capabilities. As many other software related tasks, there are many details that you need to handle. During the debugging session you need to follow the execution path and sometimes in a multi-threaded application you need to follow more than one path. Then you need to find the interesting states, those that show why the program does not act as expected.

It is either the debugging process controls you, or you control the debugging process. By that I mean that there are ways to get to the interesting state points in the program execution without executing and single stepping hundreds of times. One of such a way is to use conditional break points. Another method to get to the wrong state is by setting variables values while in breakpoint and continue the code execution. You can also change the program execution point – this is very handy if you have passed the problematic execution point and you want to re-execute it.

Controlling the debugging process using just the Visual Studio debuggers, means that you need to work hard. You need to manually create a conditional breakpoint; you need to browse the object property tree to find hidden information. You need to write down or use the immediate window to save the current object state, and you need to compare objects’ values, one by one, manually.

OzCode is about debugging process automation. It saves you time by offering a fast and easy way to control the debugging process. You can save objects’ states for future comparison. You can ask the debugger to jump to a specific loop iteration. You have a very easy way to add conditional breakpoints or trace points. You don’t need to browse the object property; you can easily search for a property name or a value and there are plenty more features.