diff --git a/runtime/makelib/targets.mk.ftl b/runtime/makelib/targets.mk.ftl
index 839910dc0df..87f613efd8a 100644
--- a/runtime/makelib/targets.mk.ftl
+++ b/runtime/makelib/targets.mk.ftl
@@ -537,21 +537,13 @@ CLANG_CXXFLAGS+=-std=c++0x -D_CRT_SUPPRESS_RESTRICT -DVS12AndHigher
CLANG_CXXFLAGS+=-D_M_X64
#if>
endif
-# special handling MHInterpreterFull.cpp, MHInterpreterCompressed.cpp, BytecodeInterpreterFull.cpp, BytecodeInterpreterCompressed.cpp, CRIUBytecodeInterpreterFull.cpp, CRIUBytecodeInterpreterCompressed.cpp, DebugBytecodeInterpreterFull.cpp and DebugBytecodeInterpreterCompressed.cpp
+# special handling MHInterpreterFull.cpp, MHInterpreterCompressed.cpp, BytecodeInterpreterFull.cpp, BytecodeInterpreterCompressed.cpp, DebugBytecodeInterpreterFull.cpp and DebugBytecodeInterpreterCompressed.cpp
BytecodeInterpreterFull$(UMA_DOT_O):BytecodeInterpreterFull.cpp
$(CLANG_CXX) $(CLANG_CXXFLAGS) -c $< -o $@
BytecodeInterpreterCompressed$(UMA_DOT_O):BytecodeInterpreterCompressed.cpp
$(CLANG_CXX) $(CLANG_CXXFLAGS) -c $< -o $@
-ifneq ($(J9VM_OPT_CRIU_SUPPORT),)
-CRIUBytecodeInterpreterFull$(UMA_DOT_O):CRIUBytecodeInterpreterFull.cpp
- $(CLANG_CXX) $(CLANG_CXXFLAGS) -c $< -o $@
-
-CRIUBytecodeInterpreterCompressed$(UMA_DOT_O):CRIUBytecodeInterpreterCompressed.cpp
- $(CLANG_CXX) $(CLANG_CXXFLAGS) -c $< -o $@
-endif
-
DebugBytecodeInterpreterFull$(UMA_DOT_O):DebugBytecodeInterpreterFull.cpp
$(CLANG_CXX) $(CLANG_CXXFLAGS) -c $< -o $@
@@ -582,7 +574,7 @@ SharedService$(UMA_DOT_O):SharedService.c
<#if uma.spec.processor.ppc>
ifndef USE_PPC_GCC
-# special handling BytecodeInterpreterFull.cpp, BytecodeInterpreterCompressed.cpp, CRIUBytecodeInterpreterFull.cpp, CRIUBytecodeInterpreterCompressed.cpp, DebugBytecodeInterpreterFull.cpp and DebugBytecodeInterpreterCompressed.cpp
+# special handling BytecodeInterpreterFull.cpp, BytecodeInterpreterCompressed.cpp, DebugBytecodeInterpreterFull.cpp and DebugBytecodeInterpreterCompressed.cpp
FLAGS_TO_REMOVE += -O3
NEW_OPTIMIZATION_FLAG=-O2 -qdebug=lincomm:ptranl:tfbagg
<#if uma.spec.type.linux>
@@ -597,14 +589,6 @@ BytecodeInterpreterFull$(UMA_DOT_O):BytecodeInterpreterFull.cpp
BytecodeInterpreterCompressed$(UMA_DOT_O):BytecodeInterpreterCompressed.cpp
$(CXX) $(SPECIALCXXFLAGS) $(NEW_OPTIMIZATION_FLAG) -c $<
-ifneq ($(J9VM_OPT_CRIU_SUPPORT),)
-CRIUBytecodeInterpreterFull$(UMA_DOT_O):CRIUBytecodeInterpreterFull.cpp
- $(CXX) $(SPECIALCXXFLAGS) $(NEW_OPTIMIZATION_FLAG) -c $<
-
-CRIUBytecodeInterpreterCompressed$(UMA_DOT_O):CRIUBytecodeInterpreterCompressed.cpp
- $(CXX) $(SPECIALCXXFLAGS) $(NEW_OPTIMIZATION_FLAG) -c $<
-endif
-
DebugBytecodeInterpreterFull$(UMA_DOT_O):DebugBytecodeInterpreterFull.cpp
$(CXX) $(SPECIALCXXFLAGS) $(NEW_OPTIMIZATION_FLAG) -c $<
diff --git a/runtime/makelib/targets.mk.linux.inc.ftl b/runtime/makelib/targets.mk.linux.inc.ftl
index bbabc7e531f..81058cc20b3 100644
--- a/runtime/makelib/targets.mk.linux.inc.ftl
+++ b/runtime/makelib/targets.mk.linux.inc.ftl
@@ -532,7 +532,7 @@ bcverify$(UMA_DOT_O) : bcverify.c
ifdef USE_PPC_GCC
-# special handling MHInterpreterFull.cpp, MHInterpreterCompressed.cpp, BytecodeInterpreterFull.cpp, BytecodeInterpreterCompressed.cpp, CRIUBytecodeInterpreterFull.cpp, CRIUBytecodeInterpreterCompressed.cpp, DebugBytecodeInterpreterFull.cpp and DebugBytecodeInterpreterCompressed.cpp
+# special handling MHInterpreterFull.cpp, MHInterpreterCompressed.cpp, BytecodeInterpreterFull.cpp, BytecodeInterpreterCompressed.cpp, DebugBytecodeInterpreterFull.cpp and DebugBytecodeInterpreterCompressed.cpp
BytecodeInterpreterFull$(UMA_DOT_O) : BytecodeInterpreterFull.cpp
$(PPC_GCC_CXX) $(PPC_GCC_CXXFLAGS) -c $<
@@ -540,14 +540,6 @@ BytecodeInterpreterFull$(UMA_DOT_O) : BytecodeInterpreterFull.cpp
BytecodeInterpreterCompressed$(UMA_DOT_O) : BytecodeInterpreterCompressed.cpp
$(PPC_GCC_CXX) $(PPC_GCC_CXXFLAGS) -c $<
-ifneq ($(J9VM_OPT_CRIU_SUPPORT),)
-CRIUBytecodeInterpreterFull$(UMA_DOT_O) : CRIUBytecodeInterpreterFull.cpp
- $(PPC_GCC_CXX) $(PPC_GCC_CXXFLAGS) -c $<
-
-CRIUBytecodeInterpreterCompressed$(UMA_DOT_O) : CRIUBytecodeInterpreterCompressed.cpp
- $(PPC_GCC_CXX) $(PPC_GCC_CXXFLAGS) -c $<
-endif
-
DebugBytecodeInterpreterFull$(UMA_DOT_O) : DebugBytecodeInterpreterFull.cpp
$(PPC_GCC_CXX) $(PPC_GCC_CXXFLAGS) -c $<
diff --git a/runtime/oti/j9nonbuilder.h b/runtime/oti/j9nonbuilder.h
index d42ca848391..d9204f6b448 100644
--- a/runtime/oti/j9nonbuilder.h
+++ b/runtime/oti/j9nonbuilder.h
@@ -4318,6 +4318,7 @@ typedef struct J9DelayedLockingOpertionsRecord {
#define J9VM_CRIU_ENABLE_CRIU_SEC_PROVIDER 0x40
#define J9VM_CRAC_IS_CHECKPOINT_ENABLED 0x80
#define J9VM_CRIU_SUPPORT_DEBUG_ON_RESTORE 0x100
+#define J9VM_CRIU_TRANSITION_TO_DEBUG_INTERPRETER 0x200
/* matches maximum count defined by JDWP in threadControl.c */
#define J9VM_CRIU_MAX_DEBUG_THREADS_STORED 10
diff --git a/runtime/vm/CMakeLists.txt b/runtime/vm/CMakeLists.txt
index 93e568deee3..780f3862ae6 100644
--- a/runtime/vm/CMakeLists.txt
+++ b/runtime/vm/CMakeLists.txt
@@ -217,13 +217,6 @@ set(interpreter_sources
DebugBytecodeInterpreterFull.cpp
)
-if(J9VM_OPT_CRIU_SUPPORT)
- list(APPEND interpreter_sources
- CRIUBytecodeInterpreterCompressed.cpp
- CRIUBytecodeInterpreterFull.cpp
- )
-endif()
-
if(J9VM_OPT_METHOD_HANDLE)
list(APPEND interpreter_sources
MHInterpreterCompressed.cpp
diff --git a/runtime/vm/CRIUBytecodeInterpreterCompressed.cpp b/runtime/vm/CRIUBytecodeInterpreterCompressed.cpp
deleted file mode 100644
index 5012e80e1f4..00000000000
--- a/runtime/vm/CRIUBytecodeInterpreterCompressed.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright IBM Corp. and others 2023
- *
- * This program and the accompanying materials are made available under
- * the terms of the Eclipse Public License 2.0 which accompanies this
- * distribution and is available at https://www.eclipse.org/legal/epl-2.0/
- * or the Apache License, Version 2.0 which accompanies this distribution and
- * is available at https://www.apache.org/licenses/LICENSE-2.0.
- *
- * This Source Code may also be made available under the following
- * Secondary Licenses when the conditions for such availability set
- * forth in the Eclipse Public License, v. 2.0 are satisfied: GNU
- * General Public License, version 2 with the GNU Classpath
- * Exception [1] and GNU General Public License, version 2 with the
- * OpenJDK Assembly Exception [2].
- *
- * [1] https://www.gnu.org/software/classpath/license.html
- * [2] https://openjdk.org/legal/assembly-exception.html
- *
- * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0 OR GPL-2.0-only WITH OpenJDK-assembly-exception-1.0
- *******************************************************************************/
-
-#include "j9cfg.h"
-
-#if defined(OMR_GC_COMPRESSED_POINTERS) && defined(J9VM_OPT_CRIU_SUPPORT)
-#define DO_HOOKS
-#define OMR_OVERRIDE_COMPRESS_OBJECT_REFERENCES 1
-#define LOOP_NAME criuBytecodeLoopCompressed
-#define INTERPRETER_CLASS VM_CRIUBytecodeInterpreterCompressed
-#include "BytecodeInterpreter.inc"
-#endif /* defined(OMR_GC_COMPRESSED_POINTERS) && defined(J9VM_OPT_CRIU_SUPPORT) */
diff --git a/runtime/vm/CRIUBytecodeInterpreterFull.cpp b/runtime/vm/CRIUBytecodeInterpreterFull.cpp
deleted file mode 100644
index 27b3a93f5fa..00000000000
--- a/runtime/vm/CRIUBytecodeInterpreterFull.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright IBM Corp. and others 2023
- *
- * This program and the accompanying materials are made available under
- * the terms of the Eclipse Public License 2.0 which accompanies this
- * distribution and is available at https://www.eclipse.org/legal/epl-2.0/
- * or the Apache License, Version 2.0 which accompanies this distribution and
- * is available at https://www.apache.org/licenses/LICENSE-2.0.
- *
- * This Source Code may also be made available under the following
- * Secondary Licenses when the conditions for such availability set
- * forth in the Eclipse Public License, v. 2.0 are satisfied: GNU
- * General Public License, version 2 with the GNU Classpath
- * Exception [1] and GNU General Public License, version 2 with the
- * OpenJDK Assembly Exception [2].
- *
- * [1] https://www.gnu.org/software/classpath/license.html
- * [2] https://openjdk.org/legal/assembly-exception.html
- *
- * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0 OR GPL-2.0-only WITH OpenJDK-assembly-exception-1.0
- *******************************************************************************/
-
-#include "j9cfg.h"
-
-#if defined(OMR_GC_FULL_POINTERS) && defined(J9VM_OPT_CRIU_SUPPORT)
-#define DO_HOOKS
-#define OMR_OVERRIDE_COMPRESS_OBJECT_REFERENCES 0
-#define LOOP_NAME criuBytecodeLoopFull
-#define INTERPRETER_CLASS VM_CRIUBytecodeInterpreterFull
-#include "BytecodeInterpreter.inc"
-#endif /* defined(OMR_GC_FULL_POINTERS) && defined(J9VM_OPT_CRIU_SUPPORT) */
diff --git a/runtime/vm/CRIUHelpers.cpp b/runtime/vm/CRIUHelpers.cpp
index 3f8b251bacc..0b1d1a31742 100644
--- a/runtime/vm/CRIUHelpers.cpp
+++ b/runtime/vm/CRIUHelpers.cpp
@@ -317,6 +317,8 @@ criuRestoreInitializeTrace(J9VMThread *currentThread, void *userData, const char
*nlsMsgFormat = j9nls_lookup_message(J9NLS_DO_NOT_PRINT_MESSAGE_TAG | J9NLS_DO_NOT_APPEND_NEWLINE,
J9NLS_VM_CRIU_RESTORE_INITIALIZE_TRACE_FAILED, NULL);
result = FALSE;
+ } else {
+ vm->checkpointState.flags |= J9VM_CRIU_TRANSITION_TO_DEBUG_INTERPRETER;
}
}
}
@@ -423,6 +425,8 @@ criuRestoreInitializeDump(J9VMThread *currentThread, void *userData, const char
*nlsMsgFormat = j9nls_lookup_message(J9NLS_DO_NOT_PRINT_MESSAGE_TAG | J9NLS_DO_NOT_APPEND_NEWLINE,
J9NLS_VM_CRIU_RESTORE_INITIALIZE_DUMP_FAILED, NULL);
result = FALSE;
+ } else {
+ vm->checkpointState.flags |= J9VM_CRIU_TRANSITION_TO_DEBUG_INTERPRETER;
}
}
}
@@ -1462,6 +1466,12 @@ loadRestoreArguments(J9VMThread *currentThread, const char *optionsFile, char *e
return result;
}
+static VMINLINE BOOLEAN
+isTransitionToDebugInterpreterRequested(J9JavaVM *vm)
+{
+ return J9_ARE_ALL_BITS_SET(vm->checkpointState.flags, J9VM_CRIU_TRANSITION_TO_DEBUG_INTERPRETER);
+}
+
static void
transitionToDebugInterpreter(J9JavaVM *vm)
{
@@ -1481,28 +1491,25 @@ transitionToDebugInterpreter(J9JavaVM *vm)
}
}
-static BOOLEAN
+static void
checkTransitionToDebugInterpreter(J9VMThread *currentThread)
{
- BOOLEAN result = TRUE;
J9JavaVM *vm = currentThread->javaVM;
- if (NULL != vm->checkpointState.restoreArgsList) {
+
+ if (J9_ARE_ALL_BITS_SET(vm->checkpointState.flags, J9VM_CRIU_IS_JDWP_ENABLED)) {
+ vm->checkpointState.flags |= J9VM_CRIU_TRANSITION_TO_DEBUG_INTERPRETER;
+ } else if (NULL != vm->checkpointState.restoreArgsList) {
J9VMInitArgs *restoreArgsList = vm->checkpointState.restoreArgsList;
IDATA debugOn = FIND_AND_CONSUME_ARG(restoreArgsList, EXACT_MATCH, VMOPT_XXDEBUGINTERPRETER, NULL);
IDATA debugOff = FIND_AND_CONSUME_ARG(restoreArgsList, EXACT_MATCH, VMOPT_XXNODEBUGINTERPRETER, NULL);
if (debugOn > debugOff) {
- /*
- * The transition to the debug interpreter currently only works with -Xint,
- * and the null check for vm->jitConfig will be removed when the jit changes are completed.
- */
- if (isDebugOnRestoreEnabled(vm) && (NULL == vm->jitConfig)) {
- transitionToDebugInterpreter(vm);
- } else {
- result = FALSE;
- }
+ vm->checkpointState.flags |= J9VM_CRIU_TRANSITION_TO_DEBUG_INTERPRETER;
}
}
- return result;
+
+ if (isTransitionToDebugInterpreterRequested(vm)) {
+ transitionToDebugInterpreter(vm);
+ }
}
void JNICALL
@@ -1906,15 +1913,6 @@ criuCheckpointJVMImpl(JNIEnv *env,
case RESTORE_ARGS_RETURN_OK:
break;
}
-
- if (!checkTransitionToDebugInterpreter(currentThread)) {
- currentExceptionClass = vm->checkpointState.criuJVMRestoreExceptionClass;
- nlsMsgFormat = j9nls_lookup_message(
- J9NLS_DO_NOT_PRINT_MESSAGE_TAG | J9NLS_DO_NOT_APPEND_NEWLINE,
- J9NLS_VM_CRIU_CHECK_TRANSITION_TO_DEBUG_INTERPRETER_FAILED,
- NULL);
- goto wakeJavaThreadsWithExclusiveVMAccess;
- }
}
if (hasDumpSucceeded) {
@@ -1928,6 +1926,9 @@ criuCheckpointJVMImpl(JNIEnv *env,
currentExceptionClass = vm->checkpointState.criuJVMRestoreExceptionClass;
goto wakeJavaThreadsWithExclusiveVMAccess;
}
+ if (hasDumpSucceeded) {
+ checkTransitionToDebugInterpreter(currentThread);
+ }
if (J9_ARE_ANY_BITS_SET(vm->checkpointState.flags, J9VM_CRIU_IS_JDWP_ENABLED)) {
/* Resuming the threads marked with J9_PRIVATE_FLAGS2_DELAY_HALT_FOR_CHECKPOINT
* is only required for JDWP threads.
diff --git a/runtime/vm/jvminit.c b/runtime/vm/jvminit.c
index ccb848ca15a..b51596c303e 100644
--- a/runtime/vm/jvminit.c
+++ b/runtime/vm/jvminit.c
@@ -326,17 +326,11 @@ J9_DECLARE_CONSTANT_UTF8(j9_dispatch, "dispatch");
/* The appropriate bytecodeLoop is selected based on interpreter mode */
#if defined(OMR_GC_FULL_POINTERS)
UDATA bytecodeLoopFull(J9VMThread *currentThread);
-#if defined(J9VM_OPT_CRIU_SUPPORT)
-UDATA criuBytecodeLoopFull(J9VMThread *currentThread);
-#endif /* defined(J9VM_OPT_CRIU_SUPPORT) */
UDATA debugBytecodeLoopFull(J9VMThread *currentThread);
#endif /* defined(OMR_GC_FULL_POINTERS) */
#if defined(OMR_GC_COMPRESSED_POINTERS)
UDATA bytecodeLoopCompressed(J9VMThread *currentThread);
-#if defined(J9VM_OPT_CRIU_SUPPORT)
-UDATA criuBytecodeLoopCompressed(J9VMThread *currentThread);
-#endif /* defined(J9VM_OPT_CRIU_SUPPORT) */
UDATA debugBytecodeLoopCompressed(J9VMThread *currentThread);
#endif /* defined(OMR_GC_COMPRESSED_POINTERS) */
@@ -3009,21 +3003,7 @@ VMInitStages(J9JavaVM *vm, IDATA stage, void* reserved)
vm->bytecodeLoop = debugBytecodeLoopFull;
#endif /* defined(OMR_GC_FULL_POINTERS) */
}
- } else
-#if defined(J9VM_OPT_CRIU_SUPPORT)
- if (J9_ARE_ALL_BITS_SET(vm->checkpointState.flags, J9VM_CRIU_IS_CHECKPOINT_ALLOWED)) {
- if (J9JAVAVM_COMPRESS_OBJECT_REFERENCES(vm)) {
-#if defined(OMR_GC_COMPRESSED_POINTERS)
- vm->bytecodeLoop = criuBytecodeLoopCompressed;
-#endif /* defined(OMR_GC_COMPRESSED_POINTERS) */
- } else {
-#if defined(OMR_GC_FULL_POINTERS)
- vm->bytecodeLoop = criuBytecodeLoopFull;
-#endif /* defined(OMR_GC_FULL_POINTERS) */
- }
- } else
-#endif /* defined(J9VM_OPT_CRIU_SUPPORT) */
- {
+ } else {
if (J9JAVAVM_COMPRESS_OBJECT_REFERENCES(vm)) {
#if defined(OMR_GC_COMPRESSED_POINTERS)
vm->bytecodeLoop = bytecodeLoopCompressed;
diff --git a/test/functional/cmdLineTests/criu/criu_nonPortable.xml b/test/functional/cmdLineTests/criu/criu_nonPortable.xml
index 7aa72279ba4..a3bdbbe865b 100644
--- a/test/functional/cmdLineTests/criu/criu_nonPortable.xml
+++ b/test/functional/cmdLineTests/criu/criu_nonPortable.xml
@@ -763,10 +763,9 @@
-
-
+
- bash $SCRIPPATH$ $TEST_RESROOT$ $JAVA_COMMAND$ "$JVM_OPTIONS$ -XX:+DebugOnRestore -Xint" $MAINCLASS_ENVVAR_TEST$ testCheckTransitionToDebugInterpreterWithEnvVarFile 1 false false
+ bash $SCRIPPATH$ $TEST_RESROOT$ $JAVA_COMMAND$ "$JVM_OPTIONS$ -Xint" $MAINCLASS_ENVVAR_TEST$ EnvVarFileTest17 1 false false
@@ -926,9 +925,9 @@
-
+
- bash $SCRIPPATH$ $TEST_RESROOT$ $JAVA_COMMAND$ "$JVM_OPTIONS$ -XX:+DebugOnRestore -Xint" $MAINCLASS_OPTIONSFILE_TEST$ testCheckTransitionToDebugInterpreterWithOptionsFile 1 false false
+ bash $SCRIPPATH$ $TEST_RESROOT$ $JAVA_COMMAND$ "$JVM_OPTIONS$ -Xint" $MAINCLASS_OPTIONSFILE_TEST$ testTransitionToDebugInterpreterViaXXDebugInterpreterWithOptionsFile 1 false false
diff --git a/test/functional/cmdLineTests/criu/src/org/openj9/criu/EnvVarFileTest.java b/test/functional/cmdLineTests/criu/src/org/openj9/criu/EnvVarFileTest.java
index 61369170c9f..79982470b9a 100644
--- a/test/functional/cmdLineTests/criu/src/org/openj9/criu/EnvVarFileTest.java
+++ b/test/functional/cmdLineTests/criu/src/org/openj9/criu/EnvVarFileTest.java
@@ -83,8 +83,8 @@ public static void main(String[] args) {
case "EnvVarFileTest16":
envVarFileTest16();
break;
- case "testCheckTransitionToDebugInterpreterWithEnvVarFile":
- testCheckTransitionToDebugInterpreterWithEnvVarFile();
+ case "EnvVarFileTest17":
+ envVarFileTest17();
break;
default:
throw new RuntimeException("incorrect parameters");
@@ -407,13 +407,15 @@ static void envVarFileTest16() {
System.out.println("Post-checkpoint");
}
- static void testCheckTransitionToDebugInterpreterWithEnvVarFile() {
- String optionsContents = RESTORE_ENV_VAR + "=-XX:+DebugInterpreter";
+ static void envVarFileTest17() {
+ String optionsContents = RESTORE_ENV_VAR + "=-XX:+DebugInterpreter\n";
Path optionsFilePath = CRIUTestUtils.createOptionsFile("options", optionsContents);
+
Path imagePath = Paths.get("cpData");
CRIUTestUtils.createCheckpointDirectory(imagePath);
CRIUSupport criuSupport = new CRIUSupport(imagePath);
criuSupport.registerRestoreEnvFile(optionsFilePath);
+
System.out.println("Pre-checkpoint");
CRIUTestUtils.checkPointJVM(criuSupport, imagePath, true);
System.out.println("Post-checkpoint");
diff --git a/test/functional/cmdLineTests/criu/src/org/openj9/criu/OptionsFileTest.java b/test/functional/cmdLineTests/criu/src/org/openj9/criu/OptionsFileTest.java
index 6ce810911f9..55ca614247d 100644
--- a/test/functional/cmdLineTests/criu/src/org/openj9/criu/OptionsFileTest.java
+++ b/test/functional/cmdLineTests/criu/src/org/openj9/criu/OptionsFileTest.java
@@ -71,8 +71,8 @@ public static void main(String[] args) {
case "JitOptionsTest":
jitOptionsTest(args);
break;
- case "testCheckTransitionToDebugInterpreterWithOptionsFile":
- testCheckTransitionToDebugInterpreterWithOptionsFile();
+ case "testTransitionToDebugInterpreterViaXXDebugInterpreterWithOptionsFile":
+ testTransitionToDebugInterpreterViaXXDebugInterpreterWithOptionsFile();
break;
default:
throw new RuntimeException("incorrect parameters");
@@ -335,13 +335,15 @@ static void jitOptionsTest(String[] args) {
}
}
- static void testCheckTransitionToDebugInterpreterWithOptionsFile() {
+ static void testTransitionToDebugInterpreterViaXXDebugInterpreterWithOptionsFile() {
String optionsContents = "-XX:+DebugInterpreter";
Path optionsFilePath = CRIUTestUtils.createOptionsFile("options", optionsContents);
+
Path imagePath = Paths.get("cpData");
CRIUTestUtils.createCheckpointDirectory(imagePath);
CRIUSupport criuSupport = new CRIUSupport(imagePath);
criuSupport.registerRestoreOptionsFile(optionsFilePath);
+
System.out.println("Pre-checkpoint");
CRIUTestUtils.checkPointJVM(criuSupport, imagePath, true);
System.out.println("Post-checkpoint");