--- old/src/jdk.jdwp.agent/share/native/libjdwp/VirtualMachineImpl.c Thu Dec 10 01:42:41 2015 +++ new/src/jdk.jdwp.agent/share/native/libjdwp/VirtualMachineImpl.c Thu Dec 10 01:42:40 2015 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,7 +36,7 @@ static char *versionName = "Java Debug Wire Protocol (Reference Implementation)"; static int majorVersion = 1; /* JDWP major version */ -static int minorVersion = 8; /* JDWP minor version */ +static int minorVersion = 9; /* JDWP minor version */ static jboolean version(PacketInputStream *in, PacketOutputStream *out) @@ -190,6 +190,38 @@ } static jboolean +allModules(PacketInputStream *in, PacketOutputStream *out) +{ + JNIEnv *env; + + if (gdata->vmDead) { + outStream_setError(out, JDWP_ERROR(VM_DEAD)); + return JNI_TRUE; + } + + env = getEnv(); + + WITH_LOCAL_REFS(env, 1) { + + jint count; + jobjectArray modules; + jsize i = 0; + + count = JNI_FUNC_PTR(env, GetAllModules)(env, &modules); + + (void)outStream_writeInt(out, count); + for (i = 0; i < count; i++) { + jobject module = JNI_FUNC_PTR(env, GetObjectArrayElement)(env, modules, i); + (void)outStream_writeModuleRef(env, out, module); + } + jvmtiDeallocate(modules); + + } END_WITH_LOCAL_REFS(env); + + return JNI_TRUE; +} + +static jboolean allClasses1(PacketInputStream *in, PacketOutputStream *out, int outputGenerics) { JNIEnv *env; @@ -885,7 +917,7 @@ return JNI_TRUE; } -void *VirtualMachine_Cmds[] = { (void *)21 +void *VirtualMachine_Cmds[] = { (void *)22 ,(void *)version ,(void *)classesForSignature ,(void *)allClasses @@ -907,4 +939,5 @@ ,(void *)setDefaultStratum ,(void *)allClassesWithGeneric ,(void *)instanceCounts + ,(void *)allModules };