Martini::MIE Namespace Reference

Martini Instrumentation Engine namespace. More...


Classes

struct  SInstrumentationError
 defines a bytecode or MSIL error. More...
struct  SInstrumentationErrorsArray
  SInstrumentationErrorsArray an error array More...
struct  SBuffer
  SBuffer a client allocated buffer More...
struct  SWideString
  SWideString a client allocated wide character string More...
struct  SCaseTarget
  SCaseTarget a pair of case value and target - for describing a switch instruction More...
struct  STargetsArray
  STargetsArray a client allocated storage for the switch instruction operand target list More...
struct  SOperand
  SOperand A structure that holds the operand type and value of an instruction More...
class  IMIE
  IMIE Interface Class Martini Instrumentation interface More...
class  IInstruction
  IInstruction Interface Class Instruction interface More...
class  IMethod
  IMethod Interface Class Method Interface base class More...

Typedefs

typedef U16 TVariableID
 Local Variable Index type.
typedef RTUtil::IListIterator
< IInstruction * > 
TInstructionListIterator
 an Iterator over an ordered list of IInstruction objects.

Enumerations

enum  EMnemonic {
  MNM_FIRST_PSEUDO, MNM_PSEUDO_START = MNM_FIRST_PSEUDO, MNM_PSEUDO_END, MNM_PSEUDO_TARGET,
  MNM_PSEUDO_TRY, MNM_PSEUDO_END_TRY, MNM_PSEUDO_FINALLY, MNM_PSEUDO_END_FINALLY,
  MNM_PSEUDO_CATCH, MNM_PSEUDO_END_CATCH, MNM_PSEUDO_FAULT, MNM_PSEUDO_END_FAULT,
  MNM_PSEUDO_FILTER, MNM_PSEUDO_END_FILTER, MNM_PSEUDO_ILLEGAL, MNM_LAST_PSEUDO,
  MNM_FIRST_MIE_SPECIAL, MNM_MIE_LOAD_INST_OFFSET = MNM_FIRST_MIE_SPECIAL, MNM_LAST_MIE_SPECIAL
}
 Defines Java or MSIL instructions, plus Martini pseudo instructions.
enum  EInstrumentationError { IE_NO_ERROR = 0, IE_INSTRUCTION_HAS_NO_OPERAND, IE_OPERAND_TYPE_MISMATCH, IE_LAST }
 Defines possible errors in Java or .NET instrumented code. More...
enum  EInstructionIteratorType { IET_ORIGINAL_INSTRUCTIONS = 0, IET_ALL_INSTRUCTIONS }
 Defines instruction iterator types. More...
enum  EOperandType {
  OT_NO_OPERAND = 0, OT_INT8, OT_UINT8, OT_INT16,
  OT_UINT16, OT_INT32, OT_UINT32, OT_INT64,
  OT_UINT64, OT_FLOAT32, OT_FLOAT64, OT_TARGET,
  OT_TARGETS_ARRAY, OT_VAR_ID, OT_DOT_NET_TOKEN, OT_JAVA_CP_INDEX,
  OT_LAST
}
  EOperandType enumerates all instruction operand types More...


Detailed Description

Contains common definitions for Java and CLR instrumentation.

Typedef Documentation

typedef RTUtil::IListIterator<IInstruction*> TInstructionListIterator

This type defines a bi-directional iterator over a method's instructions. It allows navigating the instruction list in both directions and provides instant access to the method's first and last instructions.


Enumeration Type Documentation

Enumerator:
IET_ORIGINAL_INSTRUCTIONS  an iterator that "sees" only original
IET_ALL_INSTRUCTIONS  an iterator that "sees" all instructions

When the client is done instrumenting a method it should call a write back API to encode the instrumented method. At that point the client may call a validation API that checks for trivial errors in the instrumented method. This enum contains the errors the instrumentation engine can catch.

Enumerator:
IE_NO_ERROR  no error
IE_INSTRUCTION_HAS_NO_OPERAND  operand exists for an instruction that accepts no operand
IE_OPERAND_TYPE_MISMATCH  operand type does not match the instruction
IE_LAST  no code error is greater than this

Enumerator:
OT_NO_OPERAND  No operand.
OT_INT8  operand is signed 8 bits integer
OT_UINT8  operand is unsigned 8 bits integer
OT_INT16  operand is signed 16 bits integer
OT_UINT16  operand is unsigned 16 bits integer
OT_INT32  operand is signed 32 bits integer
OT_UINT32  operand is unsigned 32 bits integer
OT_INT64  operand is signed 64 bits integer
OT_UINT64  operand is unsigned 64 bits integer
OT_FLOAT32  operand is 32 bits float
OT_FLOAT64  operand is 64 bits float
OT_TARGET  operand is a branch target
OT_TARGETS_ARRAY  operand is a Switch instruction multi target
OT_VAR_ID  operand is a local variable ID
OT_DOT_NET_TOKEN  operand is a .NET token
OT_JAVA_CP_INDEX  operand is a Java constant pool index
OT_LAST  no operand type is greater than this



Generated on Thu Mar 6 15:07:55 2008 for Martini by doxygen 1.5.5