C++ STL Type Transformations
While the C++ STL (Standard Template Library) offers standard template classes and simplifies data access, useful analysis of variables when debugging can be next to impossible, because most debuggers rely on the definitions of the data used by your compiler. In particular for STL, which uses abstractions such as structures, classes, and typedefs, much of the compiler-generated information provides little value for analysis.
To solve this problem, TotalView by default transforms STL types into a logical aggregated list, array, or structure view that makes it easier to examine the contents of STL objects. Transformed STL types include strings, arrays, vectors, deques, lists, ordered and unordered maps, multimaps, sets, and multisets, along with other objects.
STL type transformation is part of the TotalView type transformation facility (TTF) that provides tools for customizing how to view data.
NOTE: The TTF supports not only STL object transformation, but also the ability to create custom transformations. See Creating Type Transformations in the Total View Reference Guide.
STL type transformation supports specific compilers, compiler versions, and STL objects. See Supported C++ STL Type Transformations for specifics.
For example, Figure 79 shows an untransformed std::map<int,int> compiled using the GNU C++ compiler (gcc), while Figure 80 shows the same object after being transformed, in which the elements of the map are clearly visible.
NOTE: Transformed and untransformed objects display similarly in both the Local Variables view and the Data View, so you don’t need to add the object to the Data View to see its transformed type.
Figure 79, An untransformed std::map<int,int> object
Figure 80, A transformed std::map<int,int> object