Seinactive Software - Maker of Debug Assistant

By: Seinactive Software  09-12-2011
Keywords: Visual Studio, Debug Process

Before read any further:  Debug Assistant 3.5 traces unmanaged code only! If you have .NET code, these modules will be ignored. Simply put, current version is for Visual C++ only. Other modules can be part of the execution, but only C++ code are traced. Also version 3.5 traces 32bit target only, 64bit modules will be ignored. .NET and 64bit support will be available in future version, but no date is set yet. ANY purchase of Debug Assistant will get free .NET and 64bit upgrade.

What is Debug Assistant?  Debug Assistant is a debug assisting tool designed as a Visual Studio package. It is integrated with Visual Studio IDE just like any other Visual Studio components. Debug Assistant is not a debugger itself. It helps debug process by tracing/recording program execution flow. It traces every line of your code within user selected scope.

How does it work?  Before trace starts, user selects trace scope within your code. User can include/exclude any levels of code: projects, directories, files, and functions. Once scope is set up, user also needs to tell the startup program. User can click Start Process button to start the program. Debug Assistant loads up debug information of all traced modules and instruments these modules in the process memory. Your program is running just like normal, but it is under monitoring of Debug Assistant. You can click Turn On Trace button to start recording, Turn Off Trace button to pause recording. Click Show Trace Result, you get a graphical presentation of the execution you just recorded.

What do I have to do in my code?  Nothing. Your projects need to have been built with debug info, or with .pdb files that math the module (.dll or .exe) files. You don't need to change your code, or change project settings anything. Debug Assistant instruments your programs (EXEs and DLLs) in the memory, it does not change the files themselves.

What problem does it solve? Debug Assistant focuses on program execution recording. The result can be replayed or examined in a graphical presentation. What is important is you can rerun what just happened in your code. Based on this, it is obvious how it can help in debug. A lot of times, a programmer has to guess what has happened in his/her code. In the debug process, most of our time has been wasted in finding a proper breakpoint. The tracing/recording result gives you a clear idea where you should start in finding the problem code. You may also use this result for code analysis and code coverage in testing. Also in the tracing result, it shows how much time each line spent. If you are trying to solving a performance problem in your program, Debug Assistant is a fast and direct way.

When do I use it? When you are fixing a bug or just coding, you have no idea where to start from in your code. You may know where to look at, the scope is too big, there is too much going on from A to B. You are analyzing your program, and you just want to see really what is going on in your code when you run certain part of your program. You may save trace results as files and re-examine it later. You are testing your program or you are finding performance issues.

What is it NOT good for? Debug Assistant can only trace a short portion of program execution which is just good enough for you to find problems. It can not trace a long term of execution. The only reason for that is you will run out of resources (memory for example) if you do that. Because of that, currently Debug Assistant has set a hard-coded limit of how many execution points (each line of code is an execution point). That limit is 2 million. It may sound like a big number, but practically it is not that big in general. However, this is not an issue for the purpose listed above.

Is Debug Assistant easy to use? Yes, but not always. Depending on trace scope you have selected, and the nature of the trace target, It is common that you may get too much trace result to find the right spot. In this case, you would have to adjust scope and function exclusion list then redo the trace. Sometimes you may have to do it a few times.

Give me a reason to buy it? Compare to all the available development tool of this category, including Rational Purify, Rational Quantify, QATime.., Debug Assistant is the only package that can record every line of program execution, rerun it in your code. Also it is only package that shows execution flow. Debug Assistant has replay button that automatically replays your trace in your code windows.

Give me a reason NOT to buy it? No matter what, Debug Assistant is not something that you can't do your work without it. Especially if your code base is small, you may not use it very often.

Keywords: Debug Process, Visual Studio,

Contact Seinactive Software

Email - none provided

Print this page