An opaque type is a data type that could be hidden, not fully specified, or defined in another part of your program. For example, the following C declaration defines the data type for p to be a pointer to struct foo, and foo is not yet defined:
struct foo;
struct foo *p;
When TotalView encounters a variable with an opaque type, it searches for a struct, class, union, or enum definition with the same name as the opaque type. If TotalView doesn’t find a definition, it displays the value of the variable using an opaque type name; for example:
(Opaque foo)
Some compilers do not store sufficient information for TotalView to locate the type. This could be the reason why TotalView uses the opaque type.
You can tell TotalView to use the correct data type by having it read the source file. For example, if TotalView is showing you (Opaque foo) and you know that struct foo is defined in source file foo.c, use the File > Open Source Command. While this command’s primary purpose is to display the file within the Process Window, it also causes TotalView to read the file’s debugging information. As a side-effect, struct foo should now be defined. Because TotalView now knows its definition, it can resolve the opaque type.