[JVMTI] Comment identifier une méthode/fonction ?
Bonjour,
je suis en train de développer un agent JVMTI pour calculer le temps d'exécution des fonctions/méthodes appelées dans une application Java. Pour cela, j'ai défini les fonctions associées aux évènements d'entrée et de sortie de méthode (callbacks.MethodEntry = &cb_method_entry; callbacks.MethodExit = &cb_method_exit;).
Dans la fonctions gérant l'évènement MethodEntry, je stocke l'heure courante, et dans celle de MethodExit je fais une bête soustraction pour obtenir le temps d'exécution. Pour ne pas mélanger les différents temps des différentes fonctions java qui peuvent être appelées, j'ai d'abord pensé à les stocker dans une map avec pour identifiant leur nom.
Là où ca se complique c'est si la même fonction est appelée 2 fois, éventuellement même 2 fois par différents threads par exemple. 8O
Je ne peux donc pas utiliser le nom comme identifiant...
Y a-t-il un autre moyen d'identifier une fonction, autrement que par son nom (un ID de fonction?), de sorte qu'à chaque exécution l'identifiant soit différent?
J'espère ne pas avoir été trop confus ;)