NetInverse Developers Blog

April 15, 2009
Category: Debugging — Tags: , — admin @ 12:19 am

CLR Object-Method-Type Relationship

CLR Object MethodTable EEClass Relationship

CLR Object MethodTable EEClass Relationship

Object

Object is the building block in the managed world.

Debugging Commands: !DumpObj, !DumpStackObjects, !DumpArray

Type

A type describes fields and properties that hold data, as well as methods and events that describe its behavior. The information stored in a type can include the following:

  1. The storage space that a variable of the type requires.
  2. The maximum and minimum values that it can represent.
  3. The members (methods, fields, events, and so on) that it contains.
  4. The base type it inherits from.
  5. The location where the memory for variables will be allocated at run time.
  6. The kinds of operations that are permitted.
EEClass

EEClass is the data structure used by CLR to store all information about a Type.

MethodTable

A MethodTable contains an array of structures that describes each interface implemented by the class (directly declared or indirectly declared).

Generic type instantiations (in C# syntax: C<ty_1,…,ty_n>) are represented by MethodTables, i.e. a new MethodTable gets allocated for each such instantiation. The entries in these tables (i.e. the code) are, however, often shared.

MethodDesc

Method descriptor is a data structure used to store important information for a single method.

Debugging Commands: !DumpMT !DumpMD

No Comments

No comments yet.

RSS feed for comments on this post. TrackBack URL

Sorry, the comment form is closed at this time.

©2009 NetInverse. All rights reserved. Powered by WordPress