Encore une histoire de pointeur
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 :
Code:
1 2
| jvmtiError SetThreadLocalStorage(jvmtiEnv* env, jthread thread, const void* data)
jvmtiError GetThreadLocalStorage(jvmtiEnv* env, jthread thread, void** data_ptr) |
Doc sur : http://java.sun.com/j2se/1.5.0/docs/...adLocalStorage
Et la c'est le drame.. avec les void ** je suis perdu.
Je pense avoir bien utilisé la première
Code:
1 2
| jint start = 10;
err = (*jvmti)->SetThreadLocalStorage(jvmti, thread, &start); |
Par contre impossible de récupérer la valeur de start avec la seconde
Code:
1 2
| jint *startVal;
err = (*jvmti)->GetThreadLocalStorage(jvmti, thread, &startVal); |
J'ai essayé toutes les combinaisons de & ou * possible sans succes...
Avec ce code
Code:
printf("\n===== %d \n",startVal);
c'affiche l'adresse de la variable start du premier appel.
Merci pour vos conseils ;)
Samuel