The following hierarchy shows the inheritance of all Java language debugger interfaces, which all ultimately derive from IUnknown:
Registration Debugger Interfaces IUnknown | +--IRemoteDebugManager | +--IEnumRemoteProcess | | | +--IJavaEnumRemoteProcess | +--IRemoteProcess | | | +--IRemoteProcessEx Notification Debugger Interfaces IUnknown | +--IRemoteDebugManagerCallback | | | +--IRemoteDebugManagerCallbackEx | +--IRemoteProcessCallback | | | +--IRemoteProcessCallbackEx | | | | | +--IRemoteProcessCallbackEx2 Static Information Debugger Interfaces IUnknown | +--IRemoteField | | | +--IRemoteDataField | | | | | +--IRemoteArrayField | | | +--IRemoteContainerField | | | | | +--IRemoteClassField | | | | | | | +--IRemoteClassFieldEx | | | | | | | | | +--IRemoteInnerClassField | | | | | | +--IRemotePrimitiveClassField | | | | | +--IRemoteMethodField | | | | | | | +--IRemoteMethodFieldEx | +--IEnumRemoteField | | | +--IJavaEnumRemoteField | +--IEnumLINEINFO | | | +--IJavaEnumLINEINFO Dynamic Information Debugger Interfaces IUnknown | +--IEnumXXXX : IUnknown | | | +--IJavaEnumXXXX : IEnumXXXX | +--IRemoteObject | | | +--IRemoteObjectEx | | | +--IRemoteBooleanObject | | | +--IRemoteByteObject | | | +--IRemoteCharObject | | | +--IRemoteContainerObject | | | | | +--IRemoteClassObject | | | +--IRemoteDoubleObject | | | +--IRemoteFloatObject | | | +--IRemoteIntObject | | | +--IRemoteLongObject | | | +--IRemoteShortObject | | | +--IRemoteXXXXObject | | | +--IRemoteArrayObject | +--IEnumRemoteObject | | | +--IJavaEnumRemoteObject | +--IEnumRemoteValue | | | +--IEnumRemoteBooleanValue | | | | +--IJavaEnumRemoteBooleanValue | | | +--IEnumRemoteByteValue | | | | +--IJavaEnumRemoteByteValue | | | +--IEnumRemoteCharValue | | | | +--IJavaEnumRemoteCharValue | | | +--IEnumRemoteDoubleValue | | | | +--IJavaEnumRemoteDoubleValue | | | +--IEnumRemoteFloatValue | | | | +--IJavaEnumRemoteFloatValue | | | +--IEnumRemoteIntValue | | | | +--IJavaEnumRemoteIntValue | | | +--IEnumRemoteLongValue | | | | +--IJavaEnumRemoteLongValue | | | +--IEnumRemoteShortValue | | | | +--IJavaEnumRemoteShortValue Execution Control Debugger Interfaces IUnknown | +--IEnumCodeBreakpoints | +--IEnumRemoteStackFrames | +--IEnumRemoteThread | | | +--IJavaEnumRemoteThread | +--IEnumRemoteThreadGroup | | | +--IJavaEnumRemoteThreadGroup | +--IRemoteStackFrame | | | +--IRemoteStackFrameEx | +--IRemoteThread | | | +--IRemoteThreadEx | | | | | +--IRemoteThreadEx2 | +--IRemoteThreadGroup | | | +--IRemoteThreadGroupEx | +--IJITAttachDebugger