Lines Matching refs:agent

57 /* Allocates an unformatted JPLIS agent data structure. Returns NULL if allocation fails. */
61 /* Initializes an already-allocated JPLIS agent data structure. */
63 initializeJPLISAgent( JPLISAgent * agent,
66 /* De-allocates a JPLIS agent data structure. Only used in partial-failure cases at startup;
67 * in normal usage the JPLIS agent lives forever
71 JPLISAgent * agent);
75 checkCapabilities(JPLISAgent * agent);
77 /* Takes the elements of the command string (agent class name and options string) and
92 /* Start one Java agent from the supplied parameters.
95 * load the agent and call the premain.
96 * Returns true if the Java agent class is loaded and the premain/agentmain method completes
106 /* Once we have loaded the Java agent and called the premain,
108 * data (agent class name and option strings).
111 deallocateCommandLineData(JPLISAgent * agent);
149 JPLISAgent * agent,
199 * Returns error if the agent cannot be created and initialized.
216 JPLISAgent * agent = allocateJPLISAgent(jvmtienv);
217 if ( agent == NULL ) {
220 initerror = initializeJPLISAgent( agent,
224 *agent_ptr = agent;
226 deallocateJPLISAgent(jvmtienv, agent);
251 initializeJPLISAgent( JPLISAgent * agent,
257 agent->mJVM = vm;
258 agent->mNormalEnvironment.mJVMTIEnv = jvmtienv;
259 agent->mNormalEnvironment.mAgent = agent;
260 agent->mNormalEnvironment.mIsRetransformer = JNI_FALSE;
261 agent->mRetransformEnvironment.mJVMTIEnv = NULL; /* NULL until needed */
262 agent->mRetransformEnvironment.mAgent = agent;
263 agent->mRetransformEnvironment.mIsRetransformer = JNI_FALSE; /* JNI_FALSE until mJVMTIEnv is set */
264 agent->mAgentmainCaller = NULL;
265 agent->mInstrumentationImpl = NULL;
266 agent->mPremainCaller = NULL;
267 agent->mTransform = NULL;
268 agent->mRedefineAvailable = JNI_FALSE; /* assume no for now */
269 agent->mRedefineAdded = JNI_FALSE;
270 agent->mNativeMethodPrefixAvailable = JNI_FALSE; /* assume no for now */
271 agent->mNativeMethodPrefixAdded = JNI_FALSE;
272 agent->mAgentClassName = NULL;
273 agent->mOptionsString = NULL;
276 * the agent has a ref to the jvmti; make it mutual
280 &(agent->mNormalEnvironment));
285 checkCapabilities(agent);
327 deallocateJPLISAgent(jvmtiEnv * jvmtienv, JPLISAgent * agent) {
328 deallocate(jvmtienv, agent);
333 recordCommandLineData( JPLISAgent * agent,
344 ourCopyOfAgentClassName = allocate(jvmti(agent), strlen(agentClassName)+1);
349 ourCopyOfOptionsString = allocate(jvmti(agent), strlen(optionsString)+1);
351 deallocate(jvmti(agent), ourCopyOfAgentClassName);
363 agent->mAgentClassName = ourCopyOfAgentClassName;
364 agent->mOptionsString = ourCopyOfOptionsString;
381 processJavaStart( JPLISAgent * agent,
399 result = createInstrumentationImpl(jnienv, agent);
409 result = setLivePhaseEventHandlers(agent);
414 * Load the Java agent, and call the premain.
417 result = startJavaAgent(agent, jnienv,
418 agent->mAgentClassName, agent->mOptionsString,
419 agent->mPremainCaller);
427 deallocateCommandLineData(agent);
434 startJavaAgent( JPLISAgent * agent,
451 agent->mInstrumentationImpl,
461 deallocateCommandLineData( JPLISAgent * agent) {
462 deallocate(jvmti(agent), (void*)agent->mAgentClassName);
463 deallocate(jvmti(agent), (void*)agent->mOptionsString);
466 agent->mAgentClassName = NULL;
467 agent->mOptionsString = NULL;
476 JPLISAgent * agent) {
504 jlong peerReferenceAsScalar = (jlong)(intptr_t) agent;
509 agent->mRedefineAdded,
510 agent->mNativeMethodPrefixAdded);
533 /* Now look up the method ID for the agent-main caller */
556 agent->mInstrumentationImpl = resultImpl;
557 agent->mPremainCaller = premainCallerMethodID;
558 agent->mAgentmainCaller = agentmainCallerMethodID;
559 agent->mTransform = transformMethodID;
621 setLivePhaseEventHandlers( JPLISAgent * agent) {
623 jvmtiEnv * jvmtienv = jvmti(agent);
668 checkCapabilities(JPLISAgent * agent) {
669 jvmtiEnv * jvmtienv = jvmti(agent);
681 agent->mRedefineAvailable = JNI_TRUE;
684 agent->mNativeMethodPrefixAvailable = JNI_TRUE;
711 addNativeMethodPrefixCapability(JPLISAgent * agent) {
712 if (agent->mNativeMethodPrefixAvailable && !agent->mNativeMethodPrefixAdded) {
713 jvmtiEnv * jvmtienv = agent->mNormalEnvironment.mJVMTIEnv;
716 jvmtienv = agent->mRetransformEnvironment.mJVMTIEnv;
720 agent->mNativeMethodPrefixAdded = JNI_TRUE;
728 addOriginalMethodOrderCapability(JPLISAgent * agent) {
729 jvmtiEnv * jvmtienv = jvmti(agent);
746 addRedefineClassesCapability(JPLISAgent * agent) {
747 jvmtiEnv * jvmtienv = jvmti(agent);
751 if (agent->mRedefineAvailable && !agent->mRedefineAdded) {
767 agent->mRedefineAdded = JNI_TRUE;
778 transformClassFile( JPLISAgent * agent,
799 jvmti(agent),
831 jplis_assert(agent->mInstrumentationImpl != NULL);
832 jplis_assert(agent->mTransform != NULL);
835 agent->mInstrumentationImpl,
836 agent->mTransform,
859 jvmtiError allocError = (*(jvmti(agent)))->Allocate(jvmti(agent),
879 deallocate( jvmti(agent),
892 releaseReentrancyToken( jvmti(agent),
981 retransformableEnvironment(JPLISAgent * agent) {
988 if (agent->mRetransformEnvironment.mJVMTIEnv != NULL) {
989 return agent->mRetransformEnvironment.mJVMTIEnv;
991 jnierror = (*agent->mJVM)->GetEnv( agent->mJVM,
1000 if (agent->mNativeMethodPrefixAdded) {
1020 agent->mRetransformEnvironment.mJVMTIEnv = retransformerEnv;
1021 agent->mRetransformEnvironment.mIsRetransformer = JNI_TRUE;
1026 &(agent->mRetransformEnvironment));
1041 isModifiableClass(JNIEnv * jnienv, JPLISAgent * agent, jclass clazz) {
1042 jvmtiEnv * jvmtienv = jvmti(agent);
1056 isRetransformClassesSupported(JNIEnv * jnienv, JPLISAgent * agent) {
1057 return agent->mRetransformEnvironment.mIsRetransformer;
1061 setHasRetransformableTransformers(JNIEnv * jnienv, JPLISAgent * agent, jboolean has) {
1062 jvmtiEnv * retransformerEnv = retransformableEnvironment(agent);
1075 retransformClasses(JNIEnv * jnienv, JPLISAgent * agent, jobjectArray classes) {
1076 jvmtiEnv * retransformerEnv = retransformableEnvironment(agent);
1160 redefineClasses(JNIEnv * jnienv, JPLISAgent * agent, jobjectArray classDefinitions) {
1161 jvmtiEnv* jvmtienv = jvmti(agent);
1326 JPLISAgent * agent,
1329 jvmtiEnv * jvmtienv = jvmti(agent);
1336 /* retrieve the classes from the JVMTI agent */
1372 getAllLoadedClasses(JNIEnv * jnienv, JPLISAgent * agent) {
1374 agent,
1389 getInitiatedClasses(JNIEnv * jnienv, JPLISAgent * agent, jobject classLoader) {
1391 agent,
1397 getObjectSize(JNIEnv * jnienv, JPLISAgent * agent, jobject objectToSize) {
1398 jvmtiEnv * jvmtienv = jvmti(agent);
1414 appendToClassLoaderSearch(JNIEnv * jnienv, JPLISAgent * agent, jstring jarFile, jboolean isBootLoader)
1416 jvmtiEnv * jvmtienv = jvmti(agent);
1473 setNativeMethodPrefixes(JNIEnv * jnienv, JPLISAgent * agent, jobjectArray prefixArray,
1483 jvmtienv = agent->mRetransformEnvironment.mJVMTIEnv;
1485 jvmtienv = agent->mNormalEnvironment.mJVMTIEnv;