Merge "Allow to attach jvmti agents from inside of process"
This commit is contained in:
@@ -30727,6 +30727,7 @@ package android.os {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public final class Debug {
|
public final class Debug {
|
||||||
|
method public static void attachJvmtiAgent(java.lang.String, java.lang.String) throws java.io.IOException;
|
||||||
method public static deprecated void changeDebugPort(int);
|
method public static deprecated void changeDebugPort(int);
|
||||||
method public static void dumpHprofData(java.lang.String) throws java.io.IOException;
|
method public static void dumpHprofData(java.lang.String) throws java.io.IOException;
|
||||||
method public static boolean dumpService(java.lang.String, java.io.FileDescriptor, java.lang.String[]);
|
method public static boolean dumpService(java.lang.String, java.io.FileDescriptor, java.lang.String[]);
|
||||||
|
|||||||
@@ -33450,6 +33450,7 @@ package android.os {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public final class Debug {
|
public final class Debug {
|
||||||
|
method public static void attachJvmtiAgent(java.lang.String, java.lang.String) throws java.io.IOException;
|
||||||
method public static deprecated void changeDebugPort(int);
|
method public static deprecated void changeDebugPort(int);
|
||||||
method public static void dumpHprofData(java.lang.String) throws java.io.IOException;
|
method public static void dumpHprofData(java.lang.String) throws java.io.IOException;
|
||||||
method public static boolean dumpService(java.lang.String, java.io.FileDescriptor, java.lang.String[]);
|
method public static boolean dumpService(java.lang.String, java.io.FileDescriptor, java.lang.String[]);
|
||||||
|
|||||||
@@ -30837,6 +30837,7 @@ package android.os {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public final class Debug {
|
public final class Debug {
|
||||||
|
method public static void attachJvmtiAgent(java.lang.String, java.lang.String) throws java.io.IOException;
|
||||||
method public static deprecated void changeDebugPort(int);
|
method public static deprecated void changeDebugPort(int);
|
||||||
method public static void dumpHprofData(java.lang.String) throws java.io.IOException;
|
method public static void dumpHprofData(java.lang.String) throws java.io.IOException;
|
||||||
method public static boolean dumpService(java.lang.String, java.io.FileDescriptor, java.lang.String[]);
|
method public static boolean dumpService(java.lang.String, java.io.FileDescriptor, java.lang.String[]);
|
||||||
|
|||||||
@@ -16,11 +16,14 @@
|
|||||||
|
|
||||||
package android.os;
|
package android.os;
|
||||||
|
|
||||||
|
import android.annotation.NonNull;
|
||||||
|
import android.annotation.Nullable;
|
||||||
import android.app.AppGlobals;
|
import android.app.AppGlobals;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.internal.util.FastPrintWriter;
|
import com.android.internal.util.FastPrintWriter;
|
||||||
|
import com.android.internal.util.Preconditions;
|
||||||
import com.android.internal.util.TypedProperties;
|
import com.android.internal.util.TypedProperties;
|
||||||
|
|
||||||
import dalvik.system.VMDebug;
|
import dalvik.system.VMDebug;
|
||||||
@@ -2336,4 +2339,24 @@ public final class Debug
|
|||||||
public static String getCaller() {
|
public static String getCaller() {
|
||||||
return getCaller(Thread.currentThread().getStackTrace(), 0);
|
return getCaller(Thread.currentThread().getStackTrace(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Attach a library as a jvmti agent to the current runtime.
|
||||||
|
*
|
||||||
|
* @param library library containing the agent
|
||||||
|
* @param options options passed to the agent
|
||||||
|
*
|
||||||
|
* @throws IOException If the agent could not be attached
|
||||||
|
*/
|
||||||
|
public static void attachJvmtiAgent(@NonNull String library, @Nullable String options)
|
||||||
|
throws IOException {
|
||||||
|
Preconditions.checkNotNull(library);
|
||||||
|
Preconditions.checkArgument(!library.contains("="));
|
||||||
|
|
||||||
|
if (options == null) {
|
||||||
|
VMDebug.attachAgent(library);
|
||||||
|
} else {
|
||||||
|
VMDebug.attachAgent(library + "=" + options);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user