Merge "Debug: Add attachJvmtiAgent with classloader"
This commit is contained in:
@@ -31036,7 +31036,7 @@ package android.os {
|
||||
}
|
||||
|
||||
public final class Debug {
|
||||
method public static void attachJvmtiAgent(java.lang.String, java.lang.String) throws java.io.IOException;
|
||||
method public static void attachJvmtiAgent(java.lang.String, java.lang.String, java.lang.ClassLoader) throws java.io.IOException;
|
||||
method public static deprecated void changeDebugPort(int);
|
||||
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[]);
|
||||
|
||||
@@ -1136,7 +1136,7 @@ public final class Debug
|
||||
int intervalUs) {
|
||||
VMDebug.startMethodTracing(fixTracePath(tracePath), bufferSize, 0, true, intervalUs);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Formats name of trace log file for method tracing.
|
||||
*/
|
||||
@@ -2352,22 +2352,28 @@ public final class Debug
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach a library as a jvmti agent to the current runtime.
|
||||
* Attach a library as a jvmti agent to the current runtime, with the given classloader
|
||||
* determining the library search path.
|
||||
* <p>
|
||||
* Note: agents may only be attached to debuggable apps. Otherwise, this function will
|
||||
* throw a SecurityException.
|
||||
*
|
||||
* @param library library containing the agent
|
||||
* @param options options passed to the agent
|
||||
* @param library the library containing the agent.
|
||||
* @param options the options passed to the agent.
|
||||
* @param classLoader the classloader determining the library search path.
|
||||
*
|
||||
* @throws IOException If the agent could not be attached
|
||||
* @throws IOException if the agent could not be attached.
|
||||
* @throws SecurityException if the app is not debuggable.
|
||||
*/
|
||||
public static void attachJvmtiAgent(@NonNull String library, @Nullable String options)
|
||||
throws IOException {
|
||||
public static void attachJvmtiAgent(@NonNull String library, @Nullable String options,
|
||||
@Nullable ClassLoader classLoader) throws IOException {
|
||||
Preconditions.checkNotNull(library);
|
||||
Preconditions.checkArgument(!library.contains("="));
|
||||
|
||||
if (options == null) {
|
||||
VMDebug.attachAgent(library);
|
||||
VMDebug.attachAgent(library, classLoader);
|
||||
} else {
|
||||
VMDebug.attachAgent(library + "=" + options);
|
||||
VMDebug.attachAgent(library + "=" + options, classLoader);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user