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 76 shows an untransformed
std::map<int,int> compiled using the GNU C++ compiler (gcc), while
Figure 77 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.