Snap for 4612226 from ccf18e064e312377067bdfea746ec85f8375f19a to pi-release

Change-Id: I15a11bf4a170dda7e6f7b02416f382f07460cdd0
diff --git a/src/vogar/JavaVm.java b/src/vogar/JavaVm.java
index b23adec..81cc18f 100644
--- a/src/vogar/JavaVm.java
+++ b/src/vogar/JavaVm.java
@@ -44,9 +44,14 @@
         List<String> vmCommand = new ArrayList<String>();
         Iterables.addAll(vmCommand, run.invokeWith());
         vmCommand.add(run.javaPath(run.vmCommand));
-        return new VmCommandBuilder(run.log)
+        VmCommandBuilder vmCommandBuilder = new VmCommandBuilder(run.log)
                 .userDir(workingDirectory)
                 .vmCommand(vmCommand);
+        if (run.debugPort != null) {
+            vmCommandBuilder.vmArgs("-Xrunjdwp:transport=dt_socket,address="
+                    + run.debugPort + ",server=y,suspend=y");
+        }
+        return vmCommandBuilder;
     }
 
     @Override public Task executeActionTask(Action action, boolean useLargeTimeout) {
diff --git a/src/vogar/android/DeviceRuntime.java b/src/vogar/android/DeviceRuntime.java
index 616c254..1c85793 100644
--- a/src/vogar/android/DeviceRuntime.java
+++ b/src/vogar/android/DeviceRuntime.java
@@ -89,7 +89,10 @@
                 // _adb_connect in system/core/adb/adb_client.cpp).
                 .maxLength(4096);
         if (run.debugPort != null) {
-            vmCommandBuilder.vmArgs("-Xcompiler-option", "--debuggable");
+            vmCommandBuilder.vmArgs(
+                    "-Xcompiler-option", "--debuggable", "-Xplugin:libopenjdkjvmti.so",
+                    "-agentpath:libjdwp.so=transport=dt_socket,address=" + run.debugPort
+                            + ",server=y,suspend=y");
         }
 
         if (modeId == ModeId.APP_PROCESS) {
diff --git a/src/vogar/android/HostRuntime.java b/src/vogar/android/HostRuntime.java
index 5547718..948be55 100644
--- a/src/vogar/android/HostRuntime.java
+++ b/src/vogar/android/HostRuntime.java
@@ -136,7 +136,10 @@
                 .vmArgs("-Duser.language=en")
                 .vmArgs("-Duser.region=US");
         if (run.debugPort != null) {
-            builder.vmArgs("-Xcompiler-option", "--debuggable");
+            builder.vmArgs(
+                    "-Xcompiler-option", "--debuggable", "-Xplugin:libopenjdkjvmti.so",
+                    "-agentpath:libjdwp.so=transport=dt_socket,address=" + run.debugPort
+                            + ",server=y,suspend=y");
         }
         if (!run.benchmark && run.checkJni) {
             builder.vmArgs("-Xcheck:jni");
diff --git a/src/vogar/commands/VmCommandBuilder.java b/src/vogar/commands/VmCommandBuilder.java
index c532984..fc26cdb 100644
--- a/src/vogar/commands/VmCommandBuilder.java
+++ b/src/vogar/commands/VmCommandBuilder.java
@@ -105,11 +105,6 @@
         return this;
     }
 
-    public VmCommandBuilder debugPort(Integer debugPort) {
-        this.debugPort = debugPort;
-        return this;
-    }
-
     public VmCommandBuilder mainClass(String mainClass) {
         this.mainClass = mainClass;
         return this;
@@ -174,11 +169,6 @@
             builder.tokens("-Djava.io.tmpdir=" + temp);
         }
 
-        if (debugPort != null) {
-            builder.tokens("-Xrunjdwp:transport=dt_socket,address="
-                    + debugPort + ",server=y,suspend=y");
-        }
-
         builder.tokens(vmArgs);
         builder.tokens(mainClass);
         builder.tokens(args);
diff --git a/src/vogar/tasks/RunActionTask.java b/src/vogar/tasks/RunActionTask.java
index 6965676..01b659d 100644
--- a/src/vogar/tasks/RunActionTask.java
+++ b/src/vogar/tasks/RunActionTask.java
@@ -169,7 +169,6 @@
         }
         return vmCommandBuilder
                 .temp(workingDirectory)
-                .debugPort(run.debugPort)
                 .vmArgs(run.additionalVmArgs)
                 .mainClass(TestRunner.class.getName())
                 .args(run.targetArgs)