diff -r f65f740e69f9 -r 8e12a575a9b5 sysperfana/memspyext/com.nokia.s60tools.memspy.help/html/reference/object_type.htm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysperfana/memspyext/com.nokia.s60tools.memspy.help/html/reference/object_type.htm Wed Apr 21 20:01:08 2010 +0300 @@ -0,0 +1,79 @@ + + + + + Object Type + + + + +

Object Type

+ +

The Object Type view presents the objects on the heap and their position +within it, just as in the Cell Type view, but by tagging them +with their C++ type name so that you can easily recognize the objects from your +own code. Determining an object’s type for display is usually possible +for the majority of objects in the heap, but not for them all. An +object’s type can usually be determined if

+ + +

If the object type cannot be determined, but there is a unique referrer for +the object type, or if all referrers are of the same known type, [Part of +XXX] is displayed, where XXX is the type of the referrer.

+ +

Otherwise, [Unknown] is displayed.

+ +

A virtual function in a class means each instance of that class will contain +a vtable pointer. The vtable pointer can be used, in combination with the +symbolic information provided at startup, to determine the name of the class +associated with the vtable for presentation. Symbian’s CBase defines a +virtual destructor, so all conventional C-prefixed classes in Symbian will have +a vtable and so be identifiable in this way.

+ +

There are a number of possibilities, but an [Unknown] or [Part +of XXX] object is typically either a raw (non-descriptor) data buffer, or +sometimes a T-class allocated on the heap. Because such an object is often +owned and encapsulated by an identifiable C-class, one effective strategy for +identifying objects, which type cannot be determined, is to use the incoming +reference information Heap Analyser constructs. If an otherwise unknown object +type has this reference information, it is displayed in the view as [Part +of XXX], where XXX is the type of the referrer. In addition, if you +right-click an object and select Go to… > +Incoming reference, the context menu will display the types of +the objects that refer to the object. In fact there are a number of +ways of visualizing object reference relationships available from the +right-click context menu, including drawing the link relationships between +objects as an overlay of dotted lines (right click and select +Relationships… > Incoming > +Breadcrumbs).

+ +

Colours are chosen arbitrarily on a type-by-type basis in this view, with +the exception of descriptors (Yellow), [Unknown] and [Part of +XXX] (Red), and free space (Blue). The colour allocation can be viewed and +refined by clicking Set Filters. This filter settings panel is +also useful for focusing down on just object types of particular interest; +click Enable None, then selectively enable just the types you +are interested in. To get an overview, select View > +Size > Small.

+ +

+ +
Related references
+ + + + +