Bonjour amis développeurs C !
Je viens vous demander de l'aide ! Moi pauvre développeur Java qui n'a plus touché au C depuis 10 ans.. je suis perdu.
Alors pourquoi j'en ai besoin me demanderez vous... et bien pour faire du profiling Java. La JVM nous offre un interface via une librairie système pour observer certains événements.
Bref... j'ai besoin d'utiliser deux méthodes :
Doc sur : http://java.sun.com/j2se/1.5.0/docs/...adLocalStorage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 jvmtiError SetThreadLocalStorage(jvmtiEnv* env, jthread thread, const void* data) jvmtiError GetThreadLocalStorage(jvmtiEnv* env, jthread thread, void** data_ptr)
Et la c'est le drame.. avec les void ** je suis perdu.
Je pense avoir bien utilisé la première
Par contre impossible de récupérer la valeur de start avec la seconde
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 jint start = 10; err = (*jvmti)->SetThreadLocalStorage(jvmti, thread, &start);
J'ai essayé toutes les combinaisons de & ou * possible sans succes...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 jint *startVal; err = (*jvmti)->GetThreadLocalStorage(jvmti, thread, &startVal);
Avec ce code
c'affiche l'adresse de la variable start du premier appel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf("\n===== %d \n",startVal);
Merci pour vos conseils
Samuel
Partager