diff --git a/compiler/jit/jit_compiler.cc b/compiler/jit/jit_compiler.cc
index f12a3ad..e578d3b 100644
--- a/compiler/jit/jit_compiler.cc
+++ b/compiler/jit/jit_compiler.cc
@@ -41,10 +41,6 @@
   return new JitCompiler();
 }
 
-void JitCompiler::SetDebuggableCompilerOption(bool value) {
-  compiler_options_->SetDebuggable(value);
-}
-
 void JitCompiler::ParseCompilerOptions() {
   // Special case max code units for inlining, whose default is "unset" (implictly
   // meaning no limit). Do this before parsing the actual passed options.
diff --git a/compiler/jit/jit_compiler.h b/compiler/jit/jit_compiler.h
index 8cd6b5a..8e9966d 100644
--- a/compiler/jit/jit_compiler.h
+++ b/compiler/jit/jit_compiler.h
@@ -50,8 +50,6 @@
 
   bool IsBaselineCompiler() const override;
 
-  void SetDebuggableCompilerOption(bool val) override;
-
   bool GenerateDebugInfo() override;
 
   void ParseCompilerOptions() override;
diff --git a/openjdkjvmti/OpenjdkJvmTi.cc b/openjdkjvmti/OpenjdkJvmTi.cc
index d7db3d2..09900e1 100644
--- a/openjdkjvmti/OpenjdkJvmTi.cc
+++ b/openjdkjvmti/OpenjdkJvmTi.cc
@@ -89,6 +89,12 @@
     }                           \
   } while (false)
 
+// Returns whether we are able to use all jvmti features.
+static bool IsFullJvmtiAvailable() {
+  art::Runtime* runtime = art::Runtime::Current();
+  return runtime->GetInstrumentation()->IsForcedInterpretOnly() || runtime->IsJavaDebuggable();
+}
+
 class JvmtiFunctions {
  private:
   static jvmtiError getEnvironmentError(jvmtiEnv* env) {
@@ -1468,7 +1474,13 @@
   FieldUtil::Register(gEventHandler);
   BreakpointUtil::Register(gEventHandler);
   Transformer::Register(gEventHandler);
-  gDeoptManager->FinishSetup();
+
+  {
+    // Make sure we can deopt anything we need to.
+    art::ScopedSuspendAll ssa(__FUNCTION__);
+    gDeoptManager->FinishSetup();
+  }
+
   runtime->GetJavaVM()->AddEnvironmentHook(GetEnvHandler);
 
   return true;
diff --git a/openjdkjvmti/art_jvmti.h b/openjdkjvmti/art_jvmti.h
index bc965a2..cdda09b 100644
--- a/openjdkjvmti/art_jvmti.h
+++ b/openjdkjvmti/art_jvmti.h
@@ -47,11 +47,9 @@
 #include "base/strlcpy.h"
 #include "base/mutex.h"
 #include "events.h"
-#include "instrumentation.h"
 #include "jni/java_vm_ext.h"
 #include "jni/jni_env_ext.h"
 #include "jvmti.h"
-#include "runtime.h"
 #include "ti_breakpoint.h"
 
 namespace art {
@@ -71,13 +69,6 @@
 // This is the value 0x70010200.
 static constexpr jint kArtTiVersion = JVMTI_VERSION_1_2 | 0x40000000;
 
-// Returns whether we are able to use all jvmti features.
-static inline bool IsFullJvmtiAvailable() {
-  art::Runtime* runtime = art::Runtime::Current();
-  return runtime->GetInstrumentation()->IsForcedInterpretOnly() ||
-         runtime->IsJavaDebuggableAtInit();
-}
-
 // A structure that is a jvmtiEnv with additional information for the runtime.
 struct ArtJvmTiEnv : public jvmtiEnv {
   art::JavaVMExt* art_vm;
diff --git a/openjdkjvmti/deopt_manager.cc b/openjdkjvmti/deopt_manager.cc
index 129aa0f..03042ec 100644
--- a/openjdkjvmti/deopt_manager.cc
+++ b/openjdkjvmti/deopt_manager.cc
@@ -47,12 +47,10 @@
 #include "gc/scoped_gc_critical_section.h"
 #include "instrumentation.h"
 #include "jit/jit.h"
-#include "jit/jit_code_cache.h"
 #include "jni/jni_internal.h"
 #include "mirror/class-inl.h"
 #include "mirror/object_array-inl.h"
 #include "nativehelper/scoped_local_ref.h"
-#include "oat_file_manager.h"
 #include "read_barrier_config.h"
 #include "runtime_callbacks.h"
 #include "scoped_thread_state_change-inl.h"
@@ -63,8 +61,6 @@
 
 namespace openjdkjvmti {
 
-static constexpr const char* kInstrumentationKey = "JVMTI_DeoptRequester";
-
 // We could make this much more selective in the future so we only return true when we
 // actually care about the method at this time (ie active frames had locals changed). For now we
 // just assume that if anything has changed any frame's locals we care about all methods. This only
@@ -95,6 +91,14 @@
   callbacks->AddMethodInspectionCallback(&inspection_callback_);
 }
 
+void DeoptManager::Shutdown() {
+  art::ScopedThreadStateChange stsc(art::Thread::Current(),
+                                    art::ThreadState::kWaitingForDebuggerToAttach);
+  art::ScopedSuspendAll ssa("remove method Inspection Callback");
+  art::RuntimeCallbacks* callbacks = art::Runtime::Current()->GetRuntimeCallbacks();
+  callbacks->RemoveMethodInspectionCallback(&inspection_callback_);
+}
+
 void DeoptManager::DumpDeoptInfo(art::Thread* self, std::ostream& stream) {
   art::ScopedObjectAccess soa(self);
   art::MutexLock mutll(self, *art::Locks::thread_list_lock_);
@@ -144,59 +148,48 @@
 
 void DeoptManager::FinishSetup() {
   art::Thread* self = art::Thread::Current();
+  art::MutexLock mu(self, deoptimization_status_lock_);
+
   art::Runtime* runtime = art::Runtime::Current();
-  if (runtime->IsJavaDebuggable()) {
-    return;
-  }
-
-  // See if we can enable all JVMTI functions.
-  if (PhaseUtil::GetPhaseUnchecked() == JVMTI_PHASE_ONLOAD) {
-    // We are still early enough to change the compiler options and get full JVMTI support.
-    LOG(INFO) << "Openjdkjvmti plugin loaded on a non-debuggable runtime. Changing runtime to "
-              << "debuggable state. Please pass '--debuggable' to dex2oat and "
-              << "'-Xcompiler-option --debuggable' to dalvikvm in the future.";
-    DCHECK(runtime->GetJit() == nullptr) << "Jit should not be running yet!";
-    art::ScopedSuspendAll ssa(__FUNCTION__);
-    // TODO check if we need to hold deoptimization_status_lock_ here.
-    art::MutexLock mu(self, deoptimization_status_lock_);
-    runtime->AddCompilerOption("--debuggable");
-    runtime->SetRuntimeDebugState(art::Runtime::RuntimeDebugState::kJavaDebuggableAtInit);
+  // See if we need to do anything.
+  if (!runtime->IsJavaDebuggable()) {
+    // See if we can enable all JVMTI functions. If this is false, only kArtTiVersion agents can be
+    // retrieved and they will all be best-effort.
+    if (PhaseUtil::GetPhaseUnchecked() == JVMTI_PHASE_ONLOAD) {
+      // We are still early enough to change the compiler options and get full JVMTI support.
+      LOG(INFO) << "Openjdkjvmti plugin loaded on a non-debuggable runtime. Changing runtime to "
+                << "debuggable state. Please pass '--debuggable' to dex2oat and "
+                << "'-Xcompiler-option --debuggable' to dalvikvm in the future.";
+      DCHECK(runtime->GetJit() == nullptr) << "Jit should not be running yet!";
+      runtime->AddCompilerOption("--debuggable");
+      runtime->SetJavaDebuggable(true);
+    } else {
+      LOG(WARNING) << "Openjdkjvmti plugin was loaded on a non-debuggable Runtime. Plugin was "
+                   << "loaded too late to change runtime state to DEBUGGABLE. Only kArtTiVersion "
+                   << "(0x" << std::hex << kArtTiVersion << ") environments are available. Some "
+                   << "functionality might not work properly.";
+      if (runtime->GetJit() == nullptr &&
+          runtime->GetJITOptions()->UseJitCompilation() &&
+          !runtime->GetInstrumentation()->IsForcedInterpretOnly()) {
+        // If we don't have a jit we should try to start the jit for performance reasons. We only
+        // need to do this for late attach on non-debuggable processes because for debuggable
+        // processes we already rely on jit and we cannot force this jit to start if we are still in
+        // OnLoad since the runtime hasn't started up sufficiently. This is only expected to happen
+        // on userdebug/eng builds.
+        LOG(INFO) << "Attempting to start jit for openjdkjvmti plugin.";
+        // Note: use rwx allowed = true, because if this is the system server, we will not be
+        //       allowed to allocate any JIT code cache, anyways.
+        runtime->CreateJitCodeCache(/*rwx_memory_allowed=*/true);
+        runtime->CreateJit();
+        if (runtime->GetJit() == nullptr) {
+          LOG(WARNING) << "Could not start jit for openjdkjvmti plugin. This process might be "
+                       << "quite slow as it is running entirely in the interpreter. Try running "
+                       << "'setenforce 0' and restarting this process.";
+        }
+      }
+    }
     runtime->DeoptimizeBootImage();
-    return;
   }
-
-  // Runtime has already started in non-debuggable mode. Only kArtTiVersion agents can be
-  // retrieved and they will all be best-effort.
-  LOG(WARNING) << "Openjdkjvmti plugin was loaded on a non-debuggable Runtime. Plugin was "
-               << "loaded too late to change runtime state to support all capabilities. Only "
-               << "kArtTiVersion (0x" << std::hex << kArtTiVersion << ") environments are "
-               << "available. Some functionality might not work properly.";
-
-  // Transition the runtime to debuggable:
-  // 1. Wait for any background verification tasks to finish. We don't support
-  // background verification after moving to debuggable state.
-  runtime->GetOatFileManager().WaitForBackgroundVerificationTasksToFinish();
-
-  // Do the transition in ScopedJITSuspend, so we don't start any JIT compilations
-  // before the transition to debuggable is finished.
-  art::jit::ScopedJitSuspend suspend_jit;
-  art::ScopedSuspendAll ssa(__FUNCTION__);
-
-  // 2. Discard any JITed code that was generated before, since they would be
-  // compiled without debug support.
-  art::jit::Jit* jit = runtime->GetJit();
-  if (jit != nullptr) {
-    jit->GetCodeCache()->InvalidateAllCompiledCode();
-    jit->GetCodeCache()->TransitionToDebuggable();
-    jit->GetJitCompiler()->SetDebuggableCompilerOption(true);
-  }
-
-  // 3. Change the state to JavaDebuggable, so that debug features can be
-  // enabled from now on.
-  runtime->SetRuntimeDebugState(art::Runtime::RuntimeDebugState::kJavaDebuggable);
-
-  // 4. Update all entrypoints to avoid using any AOT code.
-  runtime->GetInstrumentation()->UpdateEntrypointsForDebuggable();
 }
 
 bool DeoptManager::MethodHasBreakpoints(art::ArtMethod* method) {
@@ -369,39 +362,6 @@
   }
 }
 
-void DeoptManager::Shutdown() {
-  art::Thread* self = art::Thread::Current();
-  art::Runtime* runtime = art::Runtime::Current();
-
-  // Do the transition in ScopedJITSuspend, so we don't start any JIT compilations
-  // before the transition to debuggable is finished.
-  art::jit::ScopedJitSuspend suspend_jit;
-
-  art::ScopedThreadStateChange sts(self, art::ThreadState::kSuspended);
-  deoptimization_status_lock_.ExclusiveLock(self);
-  ScopedDeoptimizationContext sdc(self, this);
-
-  art::jit::Jit* jit = runtime->GetJit();
-  if (jit != nullptr && !runtime->IsShuttingDown(self)) {
-    jit->GetCodeCache()->InvalidateAllCompiledCode();
-    jit->GetCodeCache()->TransitionToDebuggable();
-    jit->GetJitCompiler()->SetDebuggableCompilerOption(false);
-  }
-
-  art::RuntimeCallbacks* callbacks = runtime->GetRuntimeCallbacks();
-  callbacks->RemoveMethodInspectionCallback(&inspection_callback_);
-  if (!runtime->IsJavaDebuggableAtInit()) {
-    runtime->SetRuntimeDebugState(art::Runtime::RuntimeDebugState::kNonJavaDebuggable);
-  }
-  // TODO(mythria): DeoptManager should use only one key. Merge
-  // kInstrumentationKey and kDeoptManagerInstrumentationKey.
-  if (!runtime->IsShuttingDown(self)) {
-    art::Runtime::Current()->GetInstrumentation()->DisableDeoptimization(kInstrumentationKey);
-    art::Runtime::Current()->GetInstrumentation()->DisableDeoptimization(
-        kDeoptManagerInstrumentationKey);
-  }
-}
-
 void DeoptManager::RemoveDeoptimizeAllMethodsLocked(art::Thread* self) {
   DCHECK_GT(global_deopt_count_, 0u) << "Request to remove non-existent global deoptimization!";
   global_deopt_count_--;
@@ -475,6 +435,7 @@
   return OK;
 }
 
+static constexpr const char* kInstrumentationKey = "JVMTI_DeoptRequester";
 
 void DeoptManager::RemoveDeoptimizationRequester() {
   art::Thread* self = art::Thread::Current();
diff --git a/openjdkjvmti/deopt_manager.h b/openjdkjvmti/deopt_manager.h
index e9b91de..9278bf1 100644
--- a/openjdkjvmti/deopt_manager.h
+++ b/openjdkjvmti/deopt_manager.h
@@ -110,7 +110,9 @@
       REQUIRES_SHARED(art::Locks::mutator_lock_);
   void DeoptimizeAllThreads() REQUIRES_SHARED(art::Locks::mutator_lock_);
 
-  void FinishSetup() REQUIRES(!deoptimization_status_lock_, !art::Roles::uninterruptible_);
+  void FinishSetup()
+      REQUIRES(!deoptimization_status_lock_, !art::Roles::uninterruptible_)
+      REQUIRES(art::Locks::mutator_lock_);
 
   static DeoptManager* Get();
 
diff --git a/openjdkjvmti/ti_extension.cc b/openjdkjvmti/ti_extension.cc
index 02dc9f1..10ea43a 100644
--- a/openjdkjvmti/ti_extension.cc
+++ b/openjdkjvmti/ti_extension.cc
@@ -398,7 +398,8 @@
 
   // These require index-ids and debuggable to function
   art::Runtime* runtime = art::Runtime::Current();
-  if (runtime->GetJniIdType() == art::JniIdType::kIndices && IsFullJvmtiAvailable()) {
+  if (runtime->GetJniIdType() == art::JniIdType::kIndices &&
+      (runtime->GetInstrumentation()->IsForcedInterpretOnly() || runtime->IsJavaDebuggable())) {
     // IsStructurallyModifiableClass
     error = add_extension(
         reinterpret_cast<jvmtiExtensionFunction>(Redefiner::IsStructurallyModifiableClass),
@@ -702,7 +703,8 @@
     return error;
   }
   art::Runtime* runtime = art::Runtime::Current();
-  if (runtime->GetJniIdType() == art::JniIdType::kIndices && IsFullJvmtiAvailable()) {
+  if (runtime->GetJniIdType() == art::JniIdType::kIndices &&
+      (runtime->GetInstrumentation()->IsForcedInterpretOnly() || runtime->IsJavaDebuggable())) {
     error = add_extension(
         ArtJvmtiEvent::kStructuralDexFileLoadHook,
         "com.android.art.class.structural_dex_file_load_hook",
diff --git a/runtime/hidden_api.h b/runtime/hidden_api.h
index 8688a6d..1eb5e17 100644
--- a/runtime/hidden_api.h
+++ b/runtime/hidden_api.h
@@ -123,7 +123,7 @@
 
     if (domain == Domain::kApplication &&
         klass->ShouldSkipHiddenApiChecks() &&
-        Runtime::Current()->IsJavaDebuggableAtInit()) {
+        Runtime::Current()->IsJavaDebuggable()) {
       // Class is known, it is marked trusted and we are in debuggable mode.
       domain = ComputeDomain(/* is_trusted= */ true);
     }
diff --git a/runtime/instrumentation.cc b/runtime/instrumentation.cc
index 6359579..8735dcf 100644
--- a/runtime/instrumentation.cc
+++ b/runtime/instrumentation.cc
@@ -170,6 +170,7 @@
   return !new_exception_thrown;
 }
 
+
 void Instrumentation::InstallStubsForClass(ObjPtr<mirror::Class> klass) {
   if (!klass->IsResolved()) {
     // We need the class to be resolved to install/uninstall stubs. Otherwise its methods
@@ -449,14 +450,6 @@
   UpdateEntryPoints(method, GetOptimizedCodeFor(method));
 }
 
-void Instrumentation::UpdateEntrypointsForDebuggable() {
-  Runtime* runtime = Runtime::Current();
-  // If we are transitioning from non-debuggable to debuggable, we patch
-  // entry points of methods to remove any aot / JITed entry points.
-  InstallStubsClassVisitor visitor(this);
-  runtime->GetClassLinker()->VisitClasses(&visitor);
-}
-
 // Places the instrumentation exit pc as the return PC for every quick frame. This also allows
 // deoptimization of quick frames to interpreter frames. When force_deopt is
 // true the frames have to be deoptimized. If the frame has a deoptimization
@@ -1005,15 +998,17 @@
   Locks::mutator_lock_->AssertExclusiveHeld(self);
   Locks::thread_list_lock_->AssertNotHeld(self);
   UpdateInstrumentationLevel(requested_level);
-  InstallStubsClassVisitor visitor(this);
-  runtime->GetClassLinker()->VisitClasses(&visitor);
   if (requested_level > InstrumentationLevel::kInstrumentNothing) {
+    InstallStubsClassVisitor visitor(this);
+    runtime->GetClassLinker()->VisitClasses(&visitor);
     instrumentation_stubs_installed_ = true;
     MutexLock mu(self, *Locks::thread_list_lock_);
     for (Thread* thread : Runtime::Current()->GetThreadList()->GetList()) {
       InstrumentThreadStack(thread, /* deopt_all_frames= */ false);
     }
   } else {
+    InstallStubsClassVisitor visitor(this);
+    runtime->GetClassLinker()->VisitClasses(&visitor);
     MaybeRestoreInstrumentationStack();
   }
 }
@@ -1228,14 +1223,6 @@
     return;
   }
 
-  if (method->IsObsolete()) {
-    // Don't update entry points for obsolete methods. The entrypoint should
-    // have been set to InvokeObsoleteMethoStub.
-    DCHECK_EQ(method->GetEntryPointFromQuickCompiledCodePtrSize(kRuntimePointerSize),
-              GetInvokeObsoleteMethodStub());
-    return;
-  }
-
   // We are not using interpreter stubs for deoptimization. Restore the code of the method.
   // We still retain interpreter bridge if we need it for other reasons.
   if (InterpretOnly(method)) {
diff --git a/runtime/instrumentation.h b/runtime/instrumentation.h
index b232422..23c433e 100644
--- a/runtime/instrumentation.h
+++ b/runtime/instrumentation.h
@@ -550,8 +550,6 @@
 
   void InstallStubsForMethod(ArtMethod* method) REQUIRES_SHARED(Locks::mutator_lock_);
 
-  void UpdateEntrypointsForDebuggable() REQUIRES(art::Locks::mutator_lock_);
-
   // Install instrumentation exit stub on every method of the stack of the given thread.
   // This is used by:
   //  - the debugger to cause a deoptimization of the all frames in thread's stack (for
diff --git a/runtime/jit/jit.h b/runtime/jit/jit.h
index c95fd9d..fd92451 100644
--- a/runtime/jit/jit.h
+++ b/runtime/jit/jit.h
@@ -196,7 +196,6 @@
   virtual bool GenerateDebugInfo() = 0;
   virtual void ParseCompilerOptions() = 0;
   virtual bool IsBaselineCompiler() const = 0;
-  virtual void SetDebuggableCompilerOption(bool value) = 0;
 
   virtual std::vector<uint8_t> PackElfFileForJIT(ArrayRef<const JITCodeEntry*> elf_files,
                                                  ArrayRef<const void*> removed_symbols,
diff --git a/runtime/jit/jit_code_cache.cc b/runtime/jit/jit_code_cache.cc
index ad8cc9a..39f165d 100644
--- a/runtime/jit/jit_code_cache.cc
+++ b/runtime/jit/jit_code_cache.cc
@@ -1763,18 +1763,6 @@
       Runtime::Current()->GetInstrumentation()->InitializeMethodsCode(meth, /*aot_code=*/ nullptr);
     }
   }
-
-  for (auto it : zygote_map_) {
-    if (it.method == nullptr) {
-      continue;
-    }
-    if (it.method->IsPreCompiled()) {
-      it.method->ClearPreCompiled();
-    }
-    Runtime::Current()->GetInstrumentation()->InitializeMethodsCode(it.method,
-                                                                    /*aot_code=*/nullptr);
-  }
-
   saved_compiled_methods_map_.clear();
   osr_code_map_.clear();
 }
diff --git a/runtime/native/dalvik_system_DexFile.cc b/runtime/native/dalvik_system_DexFile.cc
index 9b6fb3e..d714206 100644
--- a/runtime/native/dalvik_system_DexFile.cc
+++ b/runtime/native/dalvik_system_DexFile.cc
@@ -904,7 +904,7 @@
   ScopedObjectAccess soa(env);
 
   // Currently only allow this for debuggable apps.
-  if (!runtime->IsJavaDebuggableAtInit()) {
+  if (!runtime->IsJavaDebuggable()) {
     ThrowSecurityException("Can't exempt class, process is not debuggable.");
     return;
   }
diff --git a/runtime/native/dalvik_system_VMDebug.cc b/runtime/native/dalvik_system_VMDebug.cc
index 1d5ac02..2e09c9f 100644
--- a/runtime/native/dalvik_system_VMDebug.cc
+++ b/runtime/native/dalvik_system_VMDebug.cc
@@ -466,7 +466,7 @@
   Runtime* runtime = Runtime::Current();
   ScopedObjectAccess soa(env);
 
-  if (!runtime->IsJavaDebuggableAtInit()) {
+  if (!runtime->IsJavaDebuggable()) {
     ThrowSecurityException("Can't exempt class, process is not debuggable.");
     return;
   }
diff --git a/runtime/native/dalvik_system_ZygoteHooks.cc b/runtime/native/dalvik_system_ZygoteHooks.cc
index d6b40c6..eae7c20 100644
--- a/runtime/native/dalvik_system_ZygoteHooks.cc
+++ b/runtime/native/dalvik_system_ZygoteHooks.cc
@@ -205,7 +205,7 @@
   if ((runtime_flags & DEBUG_JAVA_DEBUGGABLE) != 0) {
     runtime->AddCompilerOption("--debuggable");
     runtime_flags |= DEBUG_GENERATE_MINI_DEBUG_INFO;
-    runtime->SetRuntimeDebugState(Runtime::RuntimeDebugState::kJavaDebuggableAtInit);
+    runtime->SetJavaDebuggable(true);
     {
       // Deoptimize the boot image as it may be non-debuggable.
       ScopedSuspendAll ssa(__FUNCTION__);
diff --git a/runtime/oat_file_manager.cc b/runtime/oat_file_manager.cc
index dfb9eaf..6f1e95a 100644
--- a/runtime/oat_file_manager.cc
+++ b/runtime/oat_file_manager.cc
@@ -836,15 +836,6 @@
   verification_thread_pool_.reset(nullptr);
 }
 
-void OatFileManager::WaitForBackgroundVerificationTasksToFinish() {
-  if (verification_thread_pool_ == nullptr) {
-    return;
-  }
-
-  Thread* const self = Thread::Current();
-  verification_thread_pool_->Wait(self, /* do_work= */ true, /* may_hold_locks= */ false);
-}
-
 void OatFileManager::WaitForBackgroundVerificationTasks() {
   if (verification_thread_pool_ != nullptr) {
     Thread* const self = Thread::Current();
diff --git a/runtime/oat_file_manager.h b/runtime/oat_file_manager.h
index e09390b..b73ac58 100644
--- a/runtime/oat_file_manager.h
+++ b/runtime/oat_file_manager.h
@@ -134,9 +134,6 @@
   // If allocated, delete a thread pool of background verification threads.
   void DeleteThreadPool();
 
-  // Wait for any ongoing background verification tasks to finish.
-  void WaitForBackgroundVerificationTasksToFinish();
-
   // Wait for all background verification tasks to finish. This is only used by tests.
   void WaitForBackgroundVerificationTasks();
 
diff --git a/runtime/runtime.cc b/runtime/runtime.cc
index b291e7d..6e583af 100644
--- a/runtime/runtime.cc
+++ b/runtime/runtime.cc
@@ -288,7 +288,7 @@
       is_native_debuggable_(false),
       async_exceptions_thrown_(false),
       non_standard_exits_enabled_(false),
-      runtime_debug_state_(RuntimeDebugState::kNonJavaDebuggable),
+      is_java_debuggable_(false),
       monitor_timeout_enable_(false),
       monitor_timeout_ns_(0),
       zygote_max_failed_boots_(0),
@@ -1543,7 +1543,7 @@
   compiler_options_ = runtime_options.ReleaseOrDefault(Opt::CompilerOptions);
   for (const std::string& option : Runtime::Current()->GetCompilerOptions()) {
     if (option == "--debuggable") {
-      SetRuntimeDebugState(RuntimeDebugState::kJavaDebuggableAtInit);
+      SetJavaDebuggable(true);
       break;
     }
   }
@@ -3226,12 +3226,9 @@
   instrumentation::Instrumentation* const instrumentation_;
 };
 
-void Runtime::SetRuntimeDebugState(RuntimeDebugState state) {
-  if (state != RuntimeDebugState::kJavaDebuggableAtInit) {
-    // We never change the state if we started as a debuggable runtime.
-    DCHECK(runtime_debug_state_ != RuntimeDebugState::kJavaDebuggableAtInit);
-  }
-  runtime_debug_state_ = state;
+void Runtime::SetJavaDebuggable(bool value) {
+  is_java_debuggable_ = value;
+  // Do not call DeoptimizeBootImage just yet, the runtime may still be starting up.
 }
 
 void Runtime::DeoptimizeBootImage() {
diff --git a/runtime/runtime.h b/runtime/runtime.h
index 4790c9e..a932718 100644
--- a/runtime/runtime.h
+++ b/runtime/runtime.h
@@ -133,19 +133,6 @@
   static bool Create(const RuntimeOptions& raw_options, bool ignore_unrecognized)
       SHARED_TRYLOCK_FUNCTION(true, Locks::mutator_lock_);
 
-  enum class RuntimeDebugState {
-    // This doesn't support any debug features / method tracing. This is the expected state usually.
-    kNonJavaDebuggable,
-    // This supports method tracing and a restricted set of debug features (for ex: redefinition
-    // isn't supported). We transition to this state when method tracing has started or when the
-    // debugger was attached and transition back to NonDebuggable once the tracing has stopped /
-    // the debugger agent has detached..
-    kJavaDebuggable,
-    // The runtime was started as a debuggable runtime. This allows us to support the extended set
-    // of debug features (for ex: redefinition). We never transition out of this state.
-    kJavaDebuggableAtInit
-  };
-
   bool EnsurePluginLoaded(const char* plugin_name, std::string* error_msg);
   bool EnsurePerfettoPlugin(std::string* error_msg);
 
@@ -819,12 +806,7 @@
   }
 
   bool IsJavaDebuggable() const {
-    return runtime_debug_state_ == RuntimeDebugState::kJavaDebuggable ||
-           runtime_debug_state_ == RuntimeDebugState::kJavaDebuggableAtInit;
-  }
-
-  bool IsJavaDebuggableAtInit() const {
-    return runtime_debug_state_ == RuntimeDebugState::kJavaDebuggableAtInit;
+    return is_java_debuggable_;
   }
 
   void SetProfileableFromShell(bool value) {
@@ -843,7 +825,7 @@
     return is_profileable_;
   }
 
-  void SetRuntimeDebugState(RuntimeDebugState state);
+  void SetJavaDebuggable(bool value);
 
   // Deoptimize the boot image, called for Java debuggable apps.
   void DeoptimizeBootImage() REQUIRES(Locks::mutator_lock_);
@@ -1393,7 +1375,7 @@
   bool non_standard_exits_enabled_;
 
   // Whether Java code needs to be debuggable.
-  RuntimeDebugState runtime_debug_state_;
+  bool is_java_debuggable_;
 
   bool monitor_timeout_enable_;
   uint64_t monitor_timeout_ns_;
diff --git a/runtime/trace.cc b/runtime/trace.cc
index edca549..6b4fb29 100644
--- a/runtime/trace.cc
+++ b/runtime/trace.cc
@@ -431,8 +431,8 @@
         // we know that inlining and other problematic optimizations are disabled. We might just
         // want to use the trampolines anyway since it is faster. It makes the story with disabling
         // jit-gc more complex though.
-        runtime->GetInstrumentation()->EnableMethodTracing(kTracerInstrumentationKey,
-                                                           /*needs_interpreter=*/false);
+        runtime->GetInstrumentation()->EnableMethodTracing(
+            kTracerInstrumentationKey, /*needs_interpreter=*/!runtime->IsJavaDebuggable());
       }
     }
   }
diff --git a/test/2031-zygote-compiled-frame-deopt/native-wait.cc b/test/2031-zygote-compiled-frame-deopt/native-wait.cc
index fb45345..bd1d224 100644
--- a/test/2031-zygote-compiled-frame-deopt/native-wait.cc
+++ b/test/2031-zygote-compiled-frame-deopt/native-wait.cc
@@ -42,7 +42,7 @@
   }
   runtime->SetAsZygoteChild(/*is_system_server=*/false, /*is_zygote=*/false);
   runtime->AddCompilerOption("--debuggable");
-  runtime->SetRuntimeDebugState(Runtime::RuntimeDebugState::kJavaDebuggableAtInit);
+  runtime->SetJavaDebuggable(true);
   {
     // Deoptimize the boot image as it may be non-debuggable.
     ScopedSuspendAll ssa(__FUNCTION__);
diff --git a/test/993-breakpoints-non-debuggable/Android.bp b/test/993-breakpoints-non-debuggable/Android.bp
deleted file mode 100644
index 53a9f28..0000000
--- a/test/993-breakpoints-non-debuggable/Android.bp
+++ /dev/null
@@ -1,40 +0,0 @@
-// Generated by `regen-test-files`. Do not edit manually.
-
-// Build rules for ART run-test `993-breakpoints-non-debuggable`.
-
-package {
-    // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "art_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["art_license"],
-}
-
-// Test's Dex code.
-java_test {
-    name: "art-run-test-993-breakpoints-non-debuggable",
-    defaults: ["art-run-test-defaults"],
-    test_config_template: ":art-run-test-target-no-test-suite-tag-template",
-    srcs: ["src/**/*.java"],
-    data: [
-        ":art-run-test-993-breakpoints-non-debuggable-expected-stdout",
-        ":art-run-test-993-breakpoints-non-debuggable-expected-stderr",
-    ],
-}
-
-// Test's expected standard output.
-genrule {
-    name: "art-run-test-993-breakpoints-non-debuggable-expected-stdout",
-    out: ["art-run-test-993-breakpoints-non-debuggable-expected-stdout.txt"],
-    srcs: ["expected-stdout.txt"],
-    cmd: "cp -f $(in) $(out)",
-}
-
-// Test's expected standard error.
-genrule {
-    name: "art-run-test-993-breakpoints-non-debuggable-expected-stderr",
-    out: ["art-run-test-993-breakpoints-non-debuggable-expected-stderr.txt"],
-    srcs: ["expected-stderr.txt"],
-    cmd: "cp -f $(in) $(out)",
-}
diff --git a/test/993-breakpoints-non-debuggable/expected-stderr.txt b/test/993-breakpoints-non-debuggable/expected-stderr.txt
deleted file mode 100644
index e69de29..0000000
--- a/test/993-breakpoints-non-debuggable/expected-stderr.txt
+++ /dev/null
diff --git a/test/993-breakpoints-non-debuggable/expected-stdout.txt b/test/993-breakpoints-non-debuggable/expected-stdout.txt
deleted file mode 100644
index a4bd24b..0000000
--- a/test/993-breakpoints-non-debuggable/expected-stdout.txt
+++ /dev/null
@@ -1,715 +0,0 @@
-JNI_OnLoad called
-Running static invoke
-	Breaking on []
-		Native invoking: public static void art.Test993.breakpoint() args: [this: null]
-		Reflective invoking: public static void art.Test993.breakpoint() args: [this: null]
-		Invoking "Test993::breakpoint"
-	Breaking on [public static void art.Test993.breakpoint() @ 41]
-		Native invoking: public static void art.Test993.breakpoint() args: [this: null]
-			Breakpoint: public static void art.Test993.breakpoint() @ line=41
-		Reflective invoking: public static void art.Test993.breakpoint() args: [this: null]
-			Breakpoint: public static void art.Test993.breakpoint() @ line=41
-		Invoking "Test993::breakpoint"
-			Breakpoint: public static void art.Test993.breakpoint() @ line=41
-Running private static invoke
-	Breaking on []
-		Native invoking: private static void art.Test993.privateBreakpoint() args: [this: null]
-		Invoking "Test993::privateBreakpoint"
-	Breaking on [private static void art.Test993.privateBreakpoint() @ 45]
-		Native invoking: private static void art.Test993.privateBreakpoint() args: [this: null]
-			Breakpoint: private static void art.Test993.privateBreakpoint() @ line=45
-		Invoking "Test993::privateBreakpoint"
-			Breakpoint: private static void art.Test993.privateBreakpoint() @ line=45
-Running interface static invoke
-	Breaking on []
-		Native invoking: public static void art.Test993$Breakable.iBreakpoint() args: [this: null]
-		Reflective invoking: public static void art.Test993$Breakable.iBreakpoint() args: [this: null]
-		Invoking "Breakable::iBreakpoint"
-	Breaking on [public static void art.Test993$Breakable.iBreakpoint() @ 51]
-		Native invoking: public static void art.Test993$Breakable.iBreakpoint() args: [this: null]
-			Breakpoint: public static void art.Test993$Breakable.iBreakpoint() @ line=51
-		Reflective invoking: public static void art.Test993$Breakable.iBreakpoint() args: [this: null]
-			Breakpoint: public static void art.Test993$Breakable.iBreakpoint() @ line=51
-		Invoking "Breakable::iBreakpoint"
-			Breakpoint: public static void art.Test993$Breakable.iBreakpoint() @ line=51
-Running TestClass1 invokes
-	Breaking on []
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1]
-		Invoking "((Breakable)new TestClass1()).breakit()"
-		Invoking "new TestClass1().breakit()"
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass1()).breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass1().breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-Running TestClass1ext invokes
-	Breaking on []
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-		Native invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-		Reflective invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-		Invoking "((Breakable)new TestClass1ext()).breakit()"
-		Invoking "((TestClass1)new TestClass1ext()).breakit()"
-		Invoking "new TestClass1ext().breakit()"
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass1ext()).breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((TestClass1)new TestClass1ext()).breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass1ext().breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-	Breaking on [public void art.Test993$TestClass1ext.breakit() @ 74]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-		Native invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-		Reflective invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-		Invoking "((Breakable)new TestClass1ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-		Invoking "((TestClass1)new TestClass1ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-		Invoking "new TestClass1ext().breakit()"
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass1ext.breakit() @ 74]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass1ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((TestClass1)new TestClass1ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass1ext().breakit()"
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-Running TestClass2 invokes
-	Breaking on []
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-		Invoking "((Breakable)new TestClass2()).breakit()"
-		Invoking "new TestClass2().breakit()"
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-		Invoking "((Breakable)new TestClass2()).breakit()"
-		Invoking "new TestClass2().breakit()"
-	Breaking on [public void art.Test993$TestClass2.breakit() @ 83]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((Breakable)new TestClass2()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "new TestClass2().breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass2.breakit() @ 83]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((Breakable)new TestClass2()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "new TestClass2().breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-Running TestClass2ext invokes
-	Breaking on []
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-		Invoking "new TestClass2ext().breakit())"
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-		Invoking "new TestClass2ext().breakit())"
-	Breaking on [public void art.Test993$TestClass2.breakit() @ 83]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "new TestClass2ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-	Breaking on [public void art.Test993$TestClass2ext.breakit() @ 91]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Invoking "new TestClass2ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass2.breakit() @ 83]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "new TestClass2ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass2ext.breakit() @ 91]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Invoking "new TestClass2ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-	Breaking on [public void art.Test993$TestClass2.breakit() @ 83, public void art.Test993$TestClass2ext.breakit() @ 91]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "new TestClass2ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass2.breakit() @ 83, public void art.Test993$TestClass2ext.breakit() @ 91]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "new TestClass2ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-Running TestClass3 invokes
-	Breaking on []
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-		Invoking "((Breakable)new TestClass3()).breakit()"
-		Invoking "new TestClass3().breakit())"
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass3()).breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass3().breakit())"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-	Breaking on [public void art.Test993$TestClass3.breakit() @ 99]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "((Breakable)new TestClass3()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "new TestClass3().breakit())"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass3.breakit() @ 99]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass3()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass3().breakit())"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-Running TestClass3ext invokes
-	Breaking on []
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-		Invoking "new TestClass3ext().breakit())"
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-	Breaking on [public void art.Test993$TestClass3.breakit() @ 99]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-	Breaking on [public void art.Test993$TestClass3ext.breakit() @ 108]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass3.breakit() @ 99]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass3ext.breakit() @ 108]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-	Breaking on [public void art.Test993$TestClass3.breakit() @ 99, public void art.Test993$TestClass3ext.breakit() @ 108]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass3.breakit() @ 99, public void art.Test993$TestClass3ext.breakit() @ 108]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-Running private instance invoke
-	Breaking on []
-		Native invoking: private void art.Test993$TestClass4.privateMethod() args: [this: TestClass4]
-		Invoking "new TestClass4().callPrivateMethod()"
-	Breaking on [private void art.Test993$TestClass4.privateMethod() @ 118]
-		Native invoking: private void art.Test993$TestClass4.privateMethod() args: [this: TestClass4]
-			Breakpoint: private void art.Test993$TestClass4.privateMethod() @ line=118
-		Invoking "new TestClass4().callPrivateMethod()"
-			Breakpoint: private void art.Test993$TestClass4.privateMethod() @ line=118
-Running Vector constructor
-	Breaking on []
-		Native constructor: public java.util.Vector(), type: class java.util.Vector
-			Created: []
-		Reflective constructor: public java.util.Vector()
-			Created: []
-		Constructing: new Vector()
-			Created: []
-	Breaking on [public java.util.Vector() @ <NON-DETERMINISTIC>]
-		Native constructor: public java.util.Vector(), type: class java.util.Vector
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Reflective constructor: public java.util.Vector()
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Constructing: new Vector()
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-Running Stack constructor
-	Breaking on []
-		Native constructor: public java.util.Stack(), type: class java.util.Stack
-			Created: []
-		Reflective constructor: public java.util.Stack()
-			Created: []
-		Constructing: new Stack()
-			Created: []
-	Breaking on [public java.util.Stack() @ <NON-DETERMINISTIC>]
-		Native constructor: public java.util.Stack(), type: class java.util.Stack
-			Breakpoint: public java.util.Stack() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Reflective constructor: public java.util.Stack()
-			Breakpoint: public java.util.Stack() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Constructing: new Stack()
-			Breakpoint: public java.util.Stack() @ line=<NON-DETERMINISTIC>
-			Created: []
-	Breaking on [public java.util.Vector() @ <NON-DETERMINISTIC>]
-		Native constructor: public java.util.Stack(), type: class java.util.Stack
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Reflective constructor: public java.util.Stack()
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Constructing: new Stack()
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-	Breaking on [public java.util.Stack() @ <NON-DETERMINISTIC>, public java.util.Vector() @ <NON-DETERMINISTIC>]
-		Native constructor: public java.util.Stack(), type: class java.util.Stack
-			Breakpoint: public java.util.Stack() @ line=<NON-DETERMINISTIC>
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Reflective constructor: public java.util.Stack()
-			Breakpoint: public java.util.Stack() @ line=<NON-DETERMINISTIC>
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Constructing: new Stack()
-			Breakpoint: public java.util.Stack() @ line=<NON-DETERMINISTIC>
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-Running bcp static invoke
-	Breaking on []
-		Native invoking: public static java.util.Optional java.util.Optional.empty() args: [this: null]
-		Reflective invoking: public static java.util.Optional java.util.Optional.empty() args: [this: null]
-		Invoking "Optional::empty"
-	Breaking on [public static java.util.Optional java.util.Optional.empty() @ <NON-DETERMINISTIC>]
-		Native invoking: public static java.util.Optional java.util.Optional.empty() args: [this: null]
-			Breakpoint: public static java.util.Optional java.util.Optional.empty() @ line=<NON-DETERMINISTIC>
-		Reflective invoking: public static java.util.Optional java.util.Optional.empty() args: [this: null]
-			Breakpoint: public static java.util.Optional java.util.Optional.empty() @ line=<NON-DETERMINISTIC>
-		Invoking "Optional::empty"
-			Breakpoint: public static java.util.Optional java.util.Optional.empty() @ line=<NON-DETERMINISTIC>
-Running bcp private static invoke
-	Breaking on []
-		Native invoking: private static long java.util.Random.seedUniquifier() args: [this: null]
-		Invoking "Random::seedUniquifier"
-	Breaking on [private static long java.util.Random.seedUniquifier() @ <NON-DETERMINISTIC>]
-		Native invoking: private static long java.util.Random.seedUniquifier() args: [this: null]
-			Breakpoint: private static long java.util.Random.seedUniquifier() @ line=<NON-DETERMINISTIC>
-		Invoking "Random::seedUniquifier"
-			Breakpoint: private static long java.util.Random.seedUniquifier() @ line=<NON-DETERMINISTIC>
-Running bcp private invoke
-	Breaking on []
-		Native invoking: private java.math.BigDecimal java.time.Duration.toBigDecimalSeconds() args: [this: PT336H]
-		Invoking "Duration::toBigDecimalSeconds"
-	Breaking on [private java.math.BigDecimal java.time.Duration.toBigDecimalSeconds() @ <NON-DETERMINISTIC>]
-		Native invoking: private java.math.BigDecimal java.time.Duration.toBigDecimalSeconds() args: [this: PT336H]
-			Breakpoint: private java.math.BigDecimal java.time.Duration.toBigDecimalSeconds() @ line=<NON-DETERMINISTIC>
-		Invoking "Duration::toBigDecimalSeconds"
-			Breakpoint: private java.math.BigDecimal java.time.Duration.toBigDecimalSeconds() @ line=<NON-DETERMINISTIC>
-Running bcp invoke
-	Breaking on []
-		Native invoking: public boolean java.util.Optional.isPresent() args: [this: Optional[test]]
-		Reflective invoking: public boolean java.util.Optional.isPresent() args: [this: Optional[test2]]
-		Invoking "Optional::isPresent"
-	Breaking on [public boolean java.util.Optional.isPresent() @ <NON-DETERMINISTIC>]
-		Native invoking: public boolean java.util.Optional.isPresent() args: [this: Optional[test]]
-			Breakpoint: public boolean java.util.Optional.isPresent() @ line=<NON-DETERMINISTIC>
-		Reflective invoking: public boolean java.util.Optional.isPresent() args: [this: Optional[test2]]
-			Breakpoint: public boolean java.util.Optional.isPresent() @ line=<NON-DETERMINISTIC>
-		Invoking "Optional::isPresent"
-			Breakpoint: public boolean java.util.Optional.isPresent() @ line=<NON-DETERMINISTIC>
-Running TestClass1 constructor
-	Breaking on []
-		Native constructor: public art.Test993$TestClass1(), type: class art.Test993$TestClass1
-			Created: TestClass1
-		Reflective constructor: public art.Test993$TestClass1()
-			Created: TestClass1
-		Constructing: new TestClass1()
-			Created: TestClass1
-	Breaking on [public art.Test993$TestClass1() @ 62]
-		Native constructor: public art.Test993$TestClass1(), type: class art.Test993$TestClass1
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1
-		Reflective constructor: public art.Test993$TestClass1()
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1
-		Constructing: new TestClass1()
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1
-Running TestClass1ext constructor
-	Breaking on []
-		Native constructor: public art.Test993$TestClass1ext(), type: class art.Test993$TestClass1ext
-			Created: TestClass1Ext
-		Reflective constructor: public art.Test993$TestClass1ext()
-			Created: TestClass1Ext
-		Constructing: new TestClass1ext()
-			Created: TestClass1Ext
-	Breaking on [public art.Test993$TestClass1() @ 62]
-		Native constructor: public art.Test993$TestClass1ext(), type: class art.Test993$TestClass1ext
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1Ext
-		Reflective constructor: public art.Test993$TestClass1ext()
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1Ext
-		Constructing: new TestClass1ext()
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1Ext
-	Breaking on [public art.Test993$TestClass1ext() @ 70]
-		Native constructor: public art.Test993$TestClass1ext(), type: class art.Test993$TestClass1ext
-			Breakpoint: public art.Test993$TestClass1ext() @ line=70
-			Created: TestClass1Ext
-		Reflective constructor: public art.Test993$TestClass1ext()
-			Breakpoint: public art.Test993$TestClass1ext() @ line=70
-			Created: TestClass1Ext
-		Constructing: new TestClass1ext()
-			Breakpoint: public art.Test993$TestClass1ext() @ line=70
-			Created: TestClass1Ext
-	Breaking on [public art.Test993$TestClass1() @ 62, public art.Test993$TestClass1ext() @ 70]
-		Native constructor: public art.Test993$TestClass1ext(), type: class art.Test993$TestClass1ext
-			Breakpoint: public art.Test993$TestClass1ext() @ line=70
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1Ext
-		Reflective constructor: public art.Test993$TestClass1ext()
-			Breakpoint: public art.Test993$TestClass1ext() @ line=70
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1Ext
-		Constructing: new TestClass1ext()
-			Breakpoint: public art.Test993$TestClass1ext() @ line=70
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1Ext
diff --git a/test/993-breakpoints-non-debuggable/expected_cts.txt b/test/993-breakpoints-non-debuggable/expected_cts.txt
deleted file mode 100644
index 6c4e881..0000000
--- a/test/993-breakpoints-non-debuggable/expected_cts.txt
+++ /dev/null
@@ -1,696 +0,0 @@
-Running static invoke
-	Breaking on []
-		Native invoking: public static void art.Test993.breakpoint() args: [this: null]
-		Reflective invoking: public static void art.Test993.breakpoint() args: [this: null]
-		Invoking "Test993::breakpoint"
-	Breaking on [public static void art.Test993.breakpoint() @ 41]
-		Native invoking: public static void art.Test993.breakpoint() args: [this: null]
-			Breakpoint: public static void art.Test993.breakpoint() @ line=41
-		Reflective invoking: public static void art.Test993.breakpoint() args: [this: null]
-			Breakpoint: public static void art.Test993.breakpoint() @ line=41
-		Invoking "Test993::breakpoint"
-			Breakpoint: public static void art.Test993.breakpoint() @ line=41
-Running private static invoke
-	Breaking on []
-		Native invoking: private static void art.Test993.privateBreakpoint() args: [this: null]
-		Invoking "Test993::privateBreakpoint"
-	Breaking on [private static void art.Test993.privateBreakpoint() @ 45]
-		Native invoking: private static void art.Test993.privateBreakpoint() args: [this: null]
-			Breakpoint: private static void art.Test993.privateBreakpoint() @ line=45
-		Invoking "Test993::privateBreakpoint"
-			Breakpoint: private static void art.Test993.privateBreakpoint() @ line=45
-Running interface static invoke
-	Breaking on []
-		Native invoking: public static void art.Test993$Breakable.iBreakpoint() args: [this: null]
-		Reflective invoking: public static void art.Test993$Breakable.iBreakpoint() args: [this: null]
-		Invoking "Breakable::iBreakpoint"
-	Breaking on [public static void art.Test993$Breakable.iBreakpoint() @ 51]
-		Native invoking: public static void art.Test993$Breakable.iBreakpoint() args: [this: null]
-			Breakpoint: public static void art.Test993$Breakable.iBreakpoint() @ line=51
-		Reflective invoking: public static void art.Test993$Breakable.iBreakpoint() args: [this: null]
-			Breakpoint: public static void art.Test993$Breakable.iBreakpoint() @ line=51
-		Invoking "Breakable::iBreakpoint"
-			Breakpoint: public static void art.Test993$Breakable.iBreakpoint() @ line=51
-Running TestClass1 invokes
-	Breaking on []
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1]
-		Invoking "((Breakable)new TestClass1()).breakit()"
-		Invoking "new TestClass1().breakit()"
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass1()).breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass1().breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-Running TestClass1ext invokes
-	Breaking on []
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-		Native invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-		Reflective invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-		Invoking "((Breakable)new TestClass1ext()).breakit()"
-		Invoking "((TestClass1)new TestClass1ext()).breakit()"
-		Invoking "new TestClass1ext().breakit()"
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass1ext()).breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((TestClass1)new TestClass1ext()).breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass1ext().breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-	Breaking on [public void art.Test993$TestClass1ext.breakit() @ 74]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-		Native invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-		Reflective invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-		Invoking "((Breakable)new TestClass1ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-		Invoking "((TestClass1)new TestClass1ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-		Invoking "new TestClass1ext().breakit()"
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass1ext.breakit() @ 74]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass1ext.breakit() args: [this: TestClass1Ext]
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass1ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((TestClass1)new TestClass1ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass1ext().breakit()"
-			Breakpoint: public void art.Test993$TestClass1ext.breakit() @ line=74
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-Running TestClass2 invokes
-	Breaking on []
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-		Invoking "((Breakable)new TestClass2()).breakit()"
-		Invoking "new TestClass2().breakit()"
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-		Invoking "((Breakable)new TestClass2()).breakit()"
-		Invoking "new TestClass2().breakit()"
-	Breaking on [public void art.Test993$TestClass2.breakit() @ 83]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((Breakable)new TestClass2()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "new TestClass2().breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass2.breakit() @ 83]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((Breakable)new TestClass2()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "new TestClass2().breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-Running TestClass2ext invokes
-	Breaking on []
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-		Invoking "new TestClass2ext().breakit())"
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-		Invoking "new TestClass2ext().breakit())"
-	Breaking on [public void art.Test993$TestClass2.breakit() @ 83]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "new TestClass2ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-	Breaking on [public void art.Test993$TestClass2ext.breakit() @ 91]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Invoking "new TestClass2ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass2.breakit() @ 83]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "new TestClass2ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass2ext.breakit() @ 91]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-		Invoking "new TestClass2ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-	Breaking on [public void art.Test993$TestClass2.breakit() @ 83, public void art.Test993$TestClass2ext.breakit() @ 91]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "new TestClass2ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass2.breakit() @ 83, public void art.Test993$TestClass2ext.breakit() @ 91]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Native invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Reflective invoking: public void art.Test993$TestClass2ext.breakit() args: [this: TestClass2ext]
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((Breakable)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "((TestClass2)new TestClass2ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-		Invoking "new TestClass2ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass2ext.breakit() @ line=91
-			Breakpoint: public void art.Test993$TestClass2.breakit() @ line=83
-Running TestClass3 invokes
-	Breaking on []
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-		Invoking "((Breakable)new TestClass3()).breakit()"
-		Invoking "new TestClass3().breakit())"
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass3()).breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass3().breakit())"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-	Breaking on [public void art.Test993$TestClass3.breakit() @ 99]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "((Breakable)new TestClass3()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "new TestClass3().breakit())"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass3.breakit() @ 99]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass3()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass3().breakit())"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-Running TestClass3ext invokes
-	Breaking on []
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-		Invoking "new TestClass3ext().breakit())"
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-	Breaking on [public void art.Test993$TestClass3.breakit() @ 99]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-	Breaking on [public void art.Test993$TestClass3ext.breakit() @ 108]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass3.breakit() @ 99]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass3ext.breakit() @ 108]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-	Breaking on [public void art.Test993$TestClass3.breakit() @ 99, public void art.Test993$TestClass3ext.breakit() @ 108]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-	Breaking on [public default void art.Test993$Breakable.breakit() @ 55, public void art.Test993$TestClass3.breakit() @ 99, public void art.Test993$TestClass3ext.breakit() @ 108]
-		Native invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Native invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public default void art.Test993$Breakable.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Reflective invoking: public void art.Test993$TestClass3ext.breakit() args: [this: TestClass3ext]
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((Breakable)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "((TestClass3)new TestClass3ext()).breakit()"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-		Invoking "new TestClass3ext().breakit())"
-			Breakpoint: public void art.Test993$TestClass3ext.breakit() @ line=108
-			Breakpoint: public void art.Test993$TestClass3.breakit() @ line=99
-			Breakpoint: public default void art.Test993$Breakable.breakit() @ line=55
-Running private instance invoke
-	Breaking on []
-		Native invoking: private void art.Test993$TestClass4.privateMethod() args: [this: TestClass4]
-		Invoking "new TestClass4().callPrivateMethod()"
-	Breaking on [private void art.Test993$TestClass4.privateMethod() @ 118]
-		Native invoking: private void art.Test993$TestClass4.privateMethod() args: [this: TestClass4]
-			Breakpoint: private void art.Test993$TestClass4.privateMethod() @ line=118
-		Invoking "new TestClass4().callPrivateMethod()"
-			Breakpoint: private void art.Test993$TestClass4.privateMethod() @ line=118
-Running Vector constructor
-	Breaking on []
-		Native constructor: public java.util.Vector(), type: class java.util.Vector
-			Created: []
-		Reflective constructor: public java.util.Vector()
-			Created: []
-		Constructing: new Vector()
-			Created: []
-	Breaking on [public java.util.Vector() @ <NON-DETERMINISTIC>]
-		Native constructor: public java.util.Vector(), type: class java.util.Vector
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Reflective constructor: public java.util.Vector()
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Constructing: new Vector()
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-Running Stack constructor
-	Breaking on []
-		Native constructor: public java.util.Stack(), type: class java.util.Stack
-			Created: []
-		Reflective constructor: public java.util.Stack()
-			Created: []
-		Constructing: new Stack()
-			Created: []
-	Breaking on [public java.util.Stack() @ <NON-DETERMINISTIC>]
-		Native constructor: public java.util.Stack(), type: class java.util.Stack
-			Breakpoint: public java.util.Stack() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Reflective constructor: public java.util.Stack()
-			Breakpoint: public java.util.Stack() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Constructing: new Stack()
-			Breakpoint: public java.util.Stack() @ line=<NON-DETERMINISTIC>
-			Created: []
-	Breaking on [public java.util.Vector() @ <NON-DETERMINISTIC>]
-		Native constructor: public java.util.Stack(), type: class java.util.Stack
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Reflective constructor: public java.util.Stack()
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Constructing: new Stack()
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-	Breaking on [public java.util.Stack() @ <NON-DETERMINISTIC>, public java.util.Vector() @ <NON-DETERMINISTIC>]
-		Native constructor: public java.util.Stack(), type: class java.util.Stack
-			Breakpoint: public java.util.Stack() @ line=<NON-DETERMINISTIC>
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Reflective constructor: public java.util.Stack()
-			Breakpoint: public java.util.Stack() @ line=<NON-DETERMINISTIC>
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-		Constructing: new Stack()
-			Breakpoint: public java.util.Stack() @ line=<NON-DETERMINISTIC>
-			Breakpoint: public java.util.Vector() @ line=<NON-DETERMINISTIC>
-			Created: []
-Running bcp static invoke
-	Breaking on []
-		Native invoking: public static java.util.Optional java.util.Optional.empty() args: [this: null]
-		Reflective invoking: public static java.util.Optional java.util.Optional.empty() args: [this: null]
-		Invoking "Optional::empty"
-	Breaking on [public static java.util.Optional java.util.Optional.empty() @ <NON-DETERMINISTIC>]
-		Native invoking: public static java.util.Optional java.util.Optional.empty() args: [this: null]
-			Breakpoint: public static java.util.Optional java.util.Optional.empty() @ line=<NON-DETERMINISTIC>
-		Reflective invoking: public static java.util.Optional java.util.Optional.empty() args: [this: null]
-			Breakpoint: public static java.util.Optional java.util.Optional.empty() @ line=<NON-DETERMINISTIC>
-		Invoking "Optional::empty"
-			Breakpoint: public static java.util.Optional java.util.Optional.empty() @ line=<NON-DETERMINISTIC>
-Running bcp invoke
-	Breaking on []
-		Native invoking: public boolean java.util.Optional.isPresent() args: [this: Optional[test]]
-		Reflective invoking: public boolean java.util.Optional.isPresent() args: [this: Optional[test2]]
-		Invoking "Optional::isPresent"
-	Breaking on [public boolean java.util.Optional.isPresent() @ <NON-DETERMINISTIC>]
-		Native invoking: public boolean java.util.Optional.isPresent() args: [this: Optional[test]]
-			Breakpoint: public boolean java.util.Optional.isPresent() @ line=<NON-DETERMINISTIC>
-		Reflective invoking: public boolean java.util.Optional.isPresent() args: [this: Optional[test2]]
-			Breakpoint: public boolean java.util.Optional.isPresent() @ line=<NON-DETERMINISTIC>
-		Invoking "Optional::isPresent"
-			Breakpoint: public boolean java.util.Optional.isPresent() @ line=<NON-DETERMINISTIC>
-Running TestClass1 constructor
-	Breaking on []
-		Native constructor: public art.Test993$TestClass1(), type: class art.Test993$TestClass1
-			Created: TestClass1
-		Reflective constructor: public art.Test993$TestClass1()
-			Created: TestClass1
-		Constructing: new TestClass1()
-			Created: TestClass1
-	Breaking on [public art.Test993$TestClass1() @ 62]
-		Native constructor: public art.Test993$TestClass1(), type: class art.Test993$TestClass1
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1
-		Reflective constructor: public art.Test993$TestClass1()
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1
-		Constructing: new TestClass1()
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1
-Running TestClass1ext constructor
-	Breaking on []
-		Native constructor: public art.Test993$TestClass1ext(), type: class art.Test993$TestClass1ext
-			Created: TestClass1Ext
-		Reflective constructor: public art.Test993$TestClass1ext()
-			Created: TestClass1Ext
-		Constructing: new TestClass1ext()
-			Created: TestClass1Ext
-	Breaking on [public art.Test993$TestClass1() @ 62]
-		Native constructor: public art.Test993$TestClass1ext(), type: class art.Test993$TestClass1ext
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1Ext
-		Reflective constructor: public art.Test993$TestClass1ext()
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1Ext
-		Constructing: new TestClass1ext()
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1Ext
-	Breaking on [public art.Test993$TestClass1ext() @ 70]
-		Native constructor: public art.Test993$TestClass1ext(), type: class art.Test993$TestClass1ext
-			Breakpoint: public art.Test993$TestClass1ext() @ line=70
-			Created: TestClass1Ext
-		Reflective constructor: public art.Test993$TestClass1ext()
-			Breakpoint: public art.Test993$TestClass1ext() @ line=70
-			Created: TestClass1Ext
-		Constructing: new TestClass1ext()
-			Breakpoint: public art.Test993$TestClass1ext() @ line=70
-			Created: TestClass1Ext
-	Breaking on [public art.Test993$TestClass1() @ 62, public art.Test993$TestClass1ext() @ 70]
-		Native constructor: public art.Test993$TestClass1ext(), type: class art.Test993$TestClass1ext
-			Breakpoint: public art.Test993$TestClass1ext() @ line=70
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1Ext
-		Reflective constructor: public art.Test993$TestClass1ext()
-			Breakpoint: public art.Test993$TestClass1ext() @ line=70
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1Ext
-		Constructing: new TestClass1ext()
-			Breakpoint: public art.Test993$TestClass1ext() @ line=70
-			Breakpoint: public art.Test993$TestClass1() @ line=62
-			Created: TestClass1Ext
diff --git a/test/993-breakpoints-non-debuggable/info.txt b/test/993-breakpoints-non-debuggable/info.txt
deleted file mode 100644
index b5eb546..0000000
--- a/test/993-breakpoints-non-debuggable/info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Test basic JVMTI breakpoint functionality.
-
-This test places a breakpoint on the first instruction of a number of functions
-that are entered in every way possible for the given class of method.
-
-It also tests that breakpoints don't interfere with each other by having
-multiple breakpoints be set at once.
diff --git a/test/993-breakpoints-non-debuggable/native_attach_agent.cc b/test/993-breakpoints-non-debuggable/native_attach_agent.cc
deleted file mode 100644
index 71d30eb..0000000
--- a/test/993-breakpoints-non-debuggable/native_attach_agent.cc
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <sstream>
-
-#include "jni.h"
-#include "runtime.h"
-
-namespace art {
-namespace Test993BreakpointsNonDebuggable {
-
-extern "C" JNIEXPORT void JNICALL Java_art_Test993AttachAgent_setupJvmti(JNIEnv* env, jclass) {
-  Runtime* runtime = Runtime::Current();
-  std::ostringstream oss;
-  oss << (kIsDebugBuild ? "libtiagentd.so" : "libtiagent.so") << "=993-non-debuggable,art";
-  LOG(INFO) << "agent " << oss.str();
-  runtime->AttachAgent(env, oss.str(), nullptr);
-}
-
-}  // namespace Test993BreakpointsNonDebuggable
-}  // namespace art
diff --git a/test/993-breakpoints-non-debuggable/onload.cc b/test/993-breakpoints-non-debuggable/onload.cc
deleted file mode 100644
index dbbcadc..0000000
--- a/test/993-breakpoints-non-debuggable/onload.cc
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "jvmti.h"
-#include "jvmti_helper.h"
-#include "test_env.h"
-
-namespace art {
-namespace Test993BreakpointsNonDebuggable {
-
-static constexpr jint kArtTiVersion = JVMTI_VERSION_1_2 | 0x40000000;
-
-static const jvmtiCapabilities limited_caps = {
-    .can_tag_objects = 1,
-    .can_generate_field_modification_events = 1,
-    .can_generate_field_access_events = 1,
-    .can_get_bytecodes = 1,
-    .can_get_synthetic_attribute = 1,
-    .can_get_owned_monitor_info = 0,
-    .can_get_current_contended_monitor = 1,
-    .can_get_monitor_info = 1,
-    .can_pop_frame = 0,
-    .can_redefine_classes = 0,
-    .can_signal_thread = 1,
-    .can_get_source_file_name = 1,
-    .can_get_line_numbers = 1,
-    .can_get_source_debug_extension = 1,
-    .can_access_local_variables = 0,
-    .can_maintain_original_method_order = 1,
-    .can_generate_single_step_events = 1,
-    .can_generate_exception_events = 0,
-    .can_generate_frame_pop_events = 0,
-    .can_generate_breakpoint_events = 1,
-    .can_suspend = 1,
-    .can_redefine_any_class = 0,
-    .can_get_current_thread_cpu_time = 0,
-    .can_get_thread_cpu_time = 0,
-    .can_generate_method_entry_events = 1,
-    .can_generate_method_exit_events = 1,
-    .can_generate_all_class_hook_events = 0,
-    .can_generate_compiled_method_load_events = 0,
-    .can_generate_monitor_events = 0,
-    .can_generate_vm_object_alloc_events = 1,
-    .can_generate_native_method_bind_events = 1,
-    .can_generate_garbage_collection_events = 1,
-    .can_generate_object_free_events = 1,
-    .can_force_early_return = 0,
-    .can_get_owned_monitor_stack_depth_info = 0,
-    .can_get_constant_pool = 0,
-    .can_set_native_method_prefix = 0,
-    .can_retransform_classes = 0,
-    .can_retransform_any_class = 0,
-    .can_generate_resource_exhaustion_heap_events = 0,
-    .can_generate_resource_exhaustion_threads_events = 0,
-};
-
-jint OnLoad(JavaVM* vm, char* options ATTRIBUTE_UNUSED, void* reserved ATTRIBUTE_UNUSED) {
-  if (vm->GetEnv(reinterpret_cast<void**>(&jvmti_env), kArtTiVersion) != 0) {
-    printf("Unable to get jvmti env!\n");
-    return 1;
-  }
-
-  CheckJvmtiError(jvmti_env, jvmti_env->AddCapabilities(&limited_caps));
-  return 0;
-}
-
-}  // namespace Test993BreakpointsNonDebuggable
-}  // namespace art
diff --git a/test/993-breakpoints-non-debuggable/onload.h b/test/993-breakpoints-non-debuggable/onload.h
deleted file mode 100644
index 99ce0d2b..0000000
--- a/test/993-breakpoints-non-debuggable/onload.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ART_TEST_993_BREAKPOINTS_NON_DEBUGGABLE_ONLOAD_H_
-#define ART_TEST_993_BREAKPOINTS_NON_DEBUGGABLE_ONLOAD_H_
-
-#include "jni.h"
-
-namespace art {
-namespace Test993BreakpointsNonDebuggable {
-
-jint OnLoad(JavaVM* vm, char* options, void* reserved);
-
-}  // namespace Test993BreakpointsNonDebuggable
-}  // namespace art
-
-#endif  // ART_TEST_993_BREAKPOINTS_NON_DEBUGGABLE_ONLOAD_H_
diff --git a/test/993-breakpoints-non-debuggable/src/Main.java b/test/993-breakpoints-non-debuggable/src/Main.java
deleted file mode 100644
index 32fca46..0000000
--- a/test/993-breakpoints-non-debuggable/src/Main.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-public class Main {
-    public static void main(String[] args) throws Exception {
-        System.loadLibrary(args[0]);
-        art.Test993AttachAgent.loadAgent();
-        art.Test993.run(true);
-    }
-}
diff --git a/test/993-breakpoints-non-debuggable/src/art/Breakpoint.java b/test/993-breakpoints-non-debuggable/src/art/Breakpoint.java
deleted file mode 120000
index 3673916..0000000
--- a/test/993-breakpoints-non-debuggable/src/art/Breakpoint.java
+++ /dev/null
@@ -1 +0,0 @@
-../../../jvmti-common/Breakpoint.java
\ No newline at end of file
diff --git a/test/993-breakpoints-non-debuggable/src/art/Test993.java b/test/993-breakpoints-non-debuggable/src/art/Test993.java
deleted file mode 120000
index 7466288..0000000
--- a/test/993-breakpoints-non-debuggable/src/art/Test993.java
+++ /dev/null
@@ -1 +0,0 @@
-../../../993-breakpoints/src/art/Test993.java
\ No newline at end of file
diff --git a/test/993-breakpoints-non-debuggable/src/art/Test993AttachAgent.java b/test/993-breakpoints-non-debuggable/src/art/Test993AttachAgent.java
deleted file mode 100644
index ac82c84..0000000
--- a/test/993-breakpoints-non-debuggable/src/art/Test993AttachAgent.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package art;
-
-public class Test993AttachAgent {
-    public static native void setupJvmti();
-
-    public static void loadAgent() throws Exception {
-      setupJvmti();
-    }
-}
diff --git a/test/Android.bp b/test/Android.bp
index f68a498..c059458 100644
--- a/test/Android.bp
+++ b/test/Android.bp
@@ -684,7 +684,6 @@
         "991-field-trace-2/field_trace.cc",
         "992-source-data/source_file.cc",
         "993-breakpoints/breakpoints.cc",
-        "993-breakpoints-non-debuggable/onload.cc",
         "996-breakpoint-obsolete/obsolete_breakpoints.cc",
         "1900-track-alloc/alloc.cc",
         "1901-get-bytecodes/bytecodes.cc",
@@ -751,7 +750,6 @@
         "936-search-onload/search_onload.cc",
         "980-redefine-object/redef_object.cc",
         "983-source-transform-verify/source_transform_art.cc",
-        "993-breakpoints-non-debuggable/native_attach_agent.cc",
         // "1952-pop-frame-jit/pop_frame.cc",
         "1959-redefine-object-instrument/fake_redef_object.cc",
         "1960-obsolete-jit-multithread-native/native_say_hi.cc",
@@ -948,7 +946,6 @@
         "800-smali/jni.cc",
         "817-hiddenapi/test_native.cc",
         "909-attach-agent/disallow_debugging.cc",
-        "993-breakpoints-non-debuggable/native_attach_agent.cc",
         "1001-app-image-regions/app_image_regions.cc",
         "1002-notify-startup/startup_interface.cc",
         "1947-breakpoint-redefine-deopt/check_deopt.cc",
@@ -1053,7 +1050,6 @@
         "992-source-data/src/art/Test992.java",
         "992-source-data/src/art/Target2.java",
         "993-breakpoints/src/art/Test993.java",
-        "993-breakpoints-non-debuggable/src/art/Test993AttachAgent.java",
         "994-breakpoint-line/src/art/Test994.java",
         "995-breakpoints-throw/src/art/Test995.java",
         "996-breakpoint-obsolete/src/art/Test996.java",
@@ -1202,7 +1198,6 @@
         "992-source-data/expected-stdout.txt",
         // Need to avoid using hidden-apis
         "993-breakpoints/expected_cts.txt",
-        "993-breakpoints-non-debuggable/expected_cts.txt",
         "994-breakpoint-line/expected-stdout.txt",
         "995-breakpoints-throw/expected-stdout.txt",
         "996-breakpoint-obsolete/expected-stdout.txt",
diff --git a/test/knownfailures.json b/test/knownfailures.json
index 0ea8387..984f3fc 100644
--- a/test/knownfailures.json
+++ b/test/knownfailures.json
@@ -1073,7 +1073,6 @@
           "988-method-trace",
           "989-method-trace-throw",
           "993-breakpoints",
-          "993-breakpoints-non-debuggable",
           "1002-notify-startup",
           "1003-metadata-section-strings",
           "1336-short-finalizer-timeout",
diff --git a/test/ti-agent/common_load.cc b/test/ti-agent/common_load.cc
index ff8b3a8..cc83ad3 100644
--- a/test/ti-agent/common_load.cc
+++ b/test/ti-agent/common_load.cc
@@ -29,7 +29,6 @@
 #include "909-attach-agent/attach.h"
 #include "936-search-onload/search_onload.h"
 #include "1919-vminit-thread-start-timing/vminit.h"
-#include "993-breakpoints-non-debuggable/onload.h"
 
 namespace art {
 
@@ -83,7 +82,6 @@
   { "939-hello-transformation-bcp", common_redefine::OnLoad, nullptr },
   { "941-recursive-obsolete-jit", common_redefine::OnLoad, nullptr },
   { "943-private-recursive-jit", common_redefine::OnLoad, nullptr },
-  { "993-non-debuggable", nullptr, Test993BreakpointsNonDebuggable::OnLoad },
   { "1919-vminit-thread-start-timing", Test1919VMInitThreadStart::OnLoad, nullptr },
   { "2031-zygote-compiled-frame-deopt", nullptr, MinimalOnLoad },
   { "2039-load-transform-larger", common_retransform::OnLoad, nullptr },
diff --git a/test/utils/regen-test-files b/test/utils/regen-test-files
index 5d900e8..b2f2f16 100755
--- a/test/utils/regen-test-files
+++ b/test/utils/regen-test-files
@@ -205,8 +205,6 @@
   "832-cha-recursive",
   # 837-deopt: Dependency on `libarttest`.
   "837-deopt",
-  # 993-breakpoints-non-debuggable: This test needs native code.
-  "993-breakpoints-non-debuggable",
 ])
 
 known_failing_on_hwasan_tests = frozenset([
