You are here: Start » Technical Issues » ATL Data Types Visualizers

ATL Data Types Visualizers

Data Visualizers

Data visualizers present data during the debugging session in a human-friendly form. Microsoft Visual Studio allows users to write custom visualizers for C++ data. Aurora Vision Library is shipped with a set of visualizers for the most frequently used ATL data types: atl::String, atl::Array, atl::Conditional and atl::Optional.

Visualizers are automatically installed during installation of Aurora Vision Library and are ready to use, but they are also available at atl_visualizers subdirectory of Aurora Vision Library installation path.

For more information about visualizers, please refer to the MSDN.

Example ATL data visualization

Please see the example variables definition below and their visualization without and with visualizers.

atl::String str = L"Hello world";
atl::Conditional<int> nil = atl::NIL;
atl::Conditional<int> conditionalFive = 5;
atl::Array<int> array(3, 5);

Data preview without ATL visualizers installed:

The same data presented using AVL visualizers:

Image Watch extension

For Microsoft Visual Studio 2015, 2017 and 2019 an extension Image Watch is available. Image Watch allows to display images during debugging sessions in window similar to "Locals" or "Watch". To make Image Watch work correctly with avl::Image type, Aurora Vision Library installer provides avl::Image visualizer for Image Watch. If one have Image Watch extension and AVL installed, preview of images can be enabled by choosing "View->Other Windows->Image Watch" from Microsoft Visual Studio menu.

avl::Image description for Image Watch extension is included in atl.natvis file, which is stored in atl_visualizers folder in Aurora Vision Library installation directory. atl.natvis file is installed automatically during Aurora Vision Library installation.

When program is paused during debug session, all variables of type avl::Image can be displayed in Image Watch window, as shown below:

Image displayed inside Image Watch can be zoomed. When the close-up is large enough, decimal values of pixels' channel will be displayed. Hexadecimal values can be displayed instead, if appropriate option from context menu is selected.

Image Watch is quite powerful tool - one can copy address of given pixel, ignore alpha channel and much more. All options are described in its documentation, which is accessible from the Image Watch site at:

Previous: Memory Leak Detection in Microsoft Visual Studio Next: Optimizing Image Analysis for Speed