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
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
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.