Working with MS VM
 In this topic

*IRemoteObject : IUnknown

*IRemoteBooleanObject : IRemoteObject

*IRemoteXXXObject : IRemoteObject

*IRemoteArrayObject : IRemoteObject

*IEnumRemoteObject : IUnknown

*IEnumRemoteValue : IUnknown

*IEnumRemoteBooleanValue : IEnumRemoteValue

*IEnumRemoteXXXValue : IEnumRemoteValue

*IRemoteContainerObject : IRemoteObject

*IRemoteClassObject : IRemoteContainerObject

 

Microsoft VM    PreviousVMNext
Java Debugger Interfaces     Previous VM Next

 


Dynamic Information Interfaces

Use these interfaces to retrieve information about objects.

IRemoteObject : IUnknown

The IRemoteObject hierarchy provides bound access to objects of different types. "Object" does not necessarily refer to an instance of a class; it refers to an instance of any type. The information obtained from an IRemoteObject is valid only during the lifetime of the actual object that it represents.

GetType

HRESULT GetType(IRemoteField **ppType)

Calls to GetType for two objects of the same type in the same namespace will return an address of the same IRemoteField object, thus enabling the debugger to cache type information.

ParameterDescription
[out] ppType Returns the type of this object.

SetBreakpoint

HRESULT SetBreakpoint(void)

Sets a data breakpoint on the object. The breakpoint will fire when the object's value changes. For arrays, this is when any of its elements change. For classes, it is either when the object references a different instance of that class, or when any of the instance's data members change.

ClearBreakpoint

HRESULT ClearBreakpoint(void)

Clears a data breakpoint on the object.

IRemoteBooleanObject : IRemoteObject

Provides run-time access to the value of a Boolean variable.

GetValue

HRESULT GetValue(JAVA_BOOLEAN *pvalue)

SetValue

HRESULT SetValue(JAVA_BOOLEAN value)

IRemoteXXXObject : IRemoteObject

IRemoteByteObject : IRemoteObject
IRemoteCharObject : IRemoteObject
IRemoteDoubleObject : IRemoteObject
IRemoteFloatObject : IRemoteObject
IRemoteIntObject : IRemoteObject
IRemoteLongObject : IRemoteObject
IRemoteShortObject : IRemoteObject

Each of the preceding interfaces contains type-safe methods for getting and setting the values of objects of built-in types. They follow the same pattern as the IRemoteBooleanObject interface.

//
// Java primitive types
//
typedef unsigned char	JAVA_BOOLEAN;
typedef signed char	JAVA_BYTE;
typedef unsigned short 	JAVA_CHAR;
typedef double		JAVA_DOUBLE;
typedef float		JAVA_FLOAT;
typedef signed long	JAVA_INT;
typedef signed __int64	JAVA_LONG;
typedef signed short	JAVA_SHORT;

IRemoteArrayObject : IRemoteObject

Provides access to array objects.

GetElementObjects

HRESULT GetElementObjects(IEnumRemoteObject **ppEnum)

ParameterDescription
[out] ppEnum Returns an enumerator for the elements of this array, starting at index 0.

GetSize

HRESULT GetSize(ULONG *pcElements)

ParameterDescription
[out] pcElements Returns the number of elements in the array.

GetElementValues

HRESULT GetElementValues(IEnumRemoteValue **ppEnum)

ParameterDescription
[out] ppEnum Returns an enumerator for the values of the elements of this array, starting at index 0.

IEnumRemoteObject : IUnknown

Enumerates objects.

Next

HRESULT Next(ULONG celt, IRemoteObject *rgelt[], ULONG *pceltFetched)

Skip

HRESULT Skip(ULONG celt)

Reset

HRESULT Reset(void)

Clone

HRESULT Clone(IEnumRemoteObject **ppEnum)

GetCount

HRESULT GetCount(ULONG *pcelt)

ParameterDescription
[out] pcelt Returns the number of elements available through this enumerator.

IEnumRemoteValue : IUnknown

Enumerates values.

Skip

HRESULT Skip(ULONG celt)

Reset

HRESULT Reset(void)

Clone

HRESULT Clone(IEnumRemoteObject **ppEnum)

GetCount

HRESULT GetCount(ULONG *pcelt)

ParameterDescription
[out] pcelt Returns the number of elements available through this enumerator.

IEnumRemoteBooleanValue : IEnumRemoteValue

Enumerates Boolean values.

Next

HRESULT Next(ULONG celt, JAVA_BOOLEAN rgelt[], ULONG *pceltFetched)

IEnumRemoteXXXValue : IEnumRemoteValue

IEnumRemoteByteValue : IEnumRemoteValue
IEnumRemoteCharValue : IEnumRemoteValue
IEnumRemoteDoubleValue : IEnumRemoteValue
IEnumRemoteFloatValue : IEnumRemoteValue
IEnumRemoteIntValue : IEnumRemoteValue
IEnumRemoteLongValue : IEnumRemoteValue
IEnumRemoteShortValue : IEnumRemoteValue

Each of the preceding interfaces contains type-safe methods for enumerating values of built-in types. They follow the same pattern as the IEnumRemoteBooleanValue interface.

IRemoteContainerObject : IRemoteObject

Provides access to container objects (FIELD_KIND_METHOD or FIELD_KIND_CLASS).

GetFieldObject

HRESULT GetFieldObject(IRemoteField *pField, IRemoteObject **ppFieldObject)

Takes a field of this object's class and returns the instance of that field within the object. The IRemoteField interface is in no way bound to the instance of the object. In fact, you can use the same IRemoteField interface to extract the value of that field from many different IRemoteContainerObject interfaces in the same namespace.

ParameterDescription
[in] pField Field to retrieve from this object.
[out] ppFieldObject Returns the object contained in this object's field.

IRemoteClassObject : IRemoteContainerObject

Provides access to class objects.

GetDerivedMostType

HRESULT GetDerivedMostType (IRemoteClassField **ppDerivedMostField)

ParameterDescription
[out] ppDerivedMostField Returns the class field representing the object's derived-most type.

Top © 1998 Microsoft Corporation. All rights reserved. Terms of use.