TTFs and TotalView Expressions
The TotalView expression system always operates on the original (untransformed) type, never on the transformed type. Trying to evaluate an expression that uses the members of a transformed type directly will fail.
NOTE: Expressions operate only on the original, untransformed type, never the transformed type.
For example, this illustrates the difference between evaluating an expression that dereferences a deque reverse iterator (*rit_int) by calling operator()* for the object , and one that displays rit_int using the STL TTF rules.
d1.<> p *rit_int
*rit_int = 0x00000066 (102)
d1.<> p rit_int
rit_int = {
$elide_ptr = 0x024440d8 -> 0x00000066 (102)
}
Here, however, the expression rit_int.$elide_ptr causes an expression evaluation error because the expression system knows nothing about the transformed type, and thus there is no member named $elide_ptr in the original, untransformed type.
d1.<> p {rit_int.$elide_ptr}
dprint: Error evaluating expression 'rit_int.$elide_ptr':
Error line 1,column 9: Cannot find name "$elide_ptr"