Display matrices in a grid and draw charts from variables from within the debugger
MtxVec for Delphi does a lot of work with arrays and four object types: TVec, TMtx, Vector and Matrix. It can be of great help, if the contents of arrays and objects could be examined during debug time without the need to write special code to either store the variable contents to disk or display on screen. The Delphi debugger displays only array sizes up to 132768 elements and for numerical applications such sizes can be slow to examine and much too little. That is why debugger array visualizers are provided with MtxVec.
In our own expirience, such additional insight can make some problems, previously thought unsolvable, solvable. It helps with short term memory of the programmer making more information avialable concurrently and some data manipulations can only be understood and checked by charting it. This avoids the need for dedicated test software development in order to check every stage of the algorithm, thus providing great productivity boost. The visualizers are fine-tuned for numerical application development and can also be used with great success with projects not using MtxVec. Many our users skeptical about usefulness of such a tool, later discovered it to be indispensible.
To see it work, check out a 5min video about the features here: Debugger Visualizers video.
Although a debugger visualizer API was provided with Delphi 2010, our visualizers work with all Delphi/C++Builder versions since including Delphi 2006 delivering superior speed and responsiveness not interfering with the normal debugging process.
MtxVec plug-in for Delphi debugger
With the release of MtxVec v3.5 a new Debugger Visualizer, a debugger-plug in is included with the product. If you position your cursor during debugging close to an array of simple number type, may that be static or dynamic array or other supported array like object type TVec/TMtx (Vector/Matrix), you can press two shorcut keys: CTRL+F6 and CTRL+ALT+F6. One shortcut is for examining the contents of the array and the other one to draw the array on the chart. With release of Delphi 2010, additional access is provided via watches and tooltips. Features:
- Any number of visualizers can be displayed concurrently and have them docked or undocked in the IDE. When the debugging terminates the windows are hidden and when it restarts, they reapear in the debugger desktop layout.
- The variable name to be inspected can be entered directly in to the visualizer. With one window it is thus posible to inspect multiple variables. The edit box stores the history of entered variables.
- Alternative var names can be added to the list to allow debugging in to procedures and funcitons, but keeping an eye on the same physical variable although now under a different name.
- Data can be copied to clipboard and number display format is customizable.
- Switch between charting and grid display can be doen with one button press .
- Real time fast charting and grid display of large data structures limited only by the size of available memory with full zoom and pan support.
- Support for vectorized math expressions allow intermediate values to be stored during debugging to user specified vars to compare data later. Large set of SciLab/Matlab syntax is supported allowing extensive manipulation of data like: matrix/vector math, linear solvers, subrange selection, all standard math functions, etc..
- Stepping with F8 through the code is snappy. Even with 10 visualizers displayed concurrently, there is no noticable delay.
In case of matrices the chart generated from the matrix is a bitmap with a rainbow starting with dark blue at the minimum and ending with red hot at the maximum value. In case of 1D vectors and arrays the chart will show a simple line series. The picture shows how to draw the contents of a vector, display its data and how to compute dot product from two sections of the same vector:
Similar visualizers can be displayed for Matrices, TStrings (and derived classes), TStringList, 1D and 2D static and dynamic arrays. The displayed windows can be closed quickly by pressing the Escape key. MtxVec Debugger Visualizer is available for Delphi/CBuilder 2006 and later.Trial version of debugger visualizers is not available. All features are included with the release version of MtxVec only