Merge "Remove 1.3s "Waiting for Debugger" delay"
This commit is contained in:
@@ -981,6 +981,43 @@ public final class Debug
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wait until a debugger attaches. As soon as a debugger attaches,
|
||||||
|
* suspend all Java threads and send VM_START (a.k.a VM_INIT)
|
||||||
|
* packet.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static void suspendAllAndSendVmStart() {
|
||||||
|
if (!VMDebug.isDebuggingEnabled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if DDMS is listening, inform them of our plight
|
||||||
|
System.out.println("Sending WAIT chunk");
|
||||||
|
byte[] data = new byte[] { 0 }; // 0 == "waiting for debugger"
|
||||||
|
Chunk waitChunk = new Chunk(ChunkHandler.type("WAIT"), data, 0, 1);
|
||||||
|
DdmServer.sendChunk(waitChunk);
|
||||||
|
|
||||||
|
// We must wait until a debugger is connected (debug socket is
|
||||||
|
// open and at least one non-DDM JDWP packedt has been received.
|
||||||
|
// This guarantees that oj-libjdwp has been attached and that
|
||||||
|
// ART's default implementation of suspendAllAndSendVmStart has
|
||||||
|
// been replaced with an implementation that will suspendAll and
|
||||||
|
// send VM_START.
|
||||||
|
System.out.println("Waiting for debugger first packet");
|
||||||
|
while (!isDebuggerConnected()) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(100);
|
||||||
|
} catch (InterruptedException ie) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("Debug.suspendAllAndSentVmStart");
|
||||||
|
VMDebug.suspendAllAndSendVmStart();
|
||||||
|
System.out.println("Debug.suspendAllAndSendVmStart, resumed");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wait until a debugger attaches. As soon as the debugger attaches,
|
* Wait until a debugger attaches. As soon as the debugger attaches,
|
||||||
* this returns, so you will need to place a breakpoint after the
|
* this returns, so you will need to place a breakpoint after the
|
||||||
|
|||||||
Reference in New Issue
Block a user