Recuperer la trace d'execution

Recuperer la trace d'execution - Java - Programmation

Marsh Posté le 27-07-2006 à 12:43:46    

Bonjour,
 
Je chercherais a savoir comment on fait pour pouvoir voir quelles sont les methodes qui ont ete appellees a un moment du programme.
 
Si on prend cette classe tres simple :


public class dudu {
  public dudu() {}
 
  public static void methode1() {
    System.out.println("je suis la methode 1" );
    Exception e = new Exception();
    e.printStackTrace();
  }
 
  public static void main(String argv[]) {
    System.out.println("hello !" );
    methode1();
    Exception e = new Exception();
    e.printStackTrace();
  }
}


 
Cela va afficher :


hello !
je suis la methode 1
java.lang.Exception
        at dudu.methode1(dudu.java:6)
        at dudu.main(dudu.java:12)
java.lang.Exception
        at dudu.main(dudu.java:13)


 
Je chercherais un moyen de savoir a partir de la methode "main", que la "methode1" a ete executee, et que par exemple, la "methode1" a bien appele la "methode2". La methode printStackTrace() ne suffit pas, puisque bien sur, apres l'execution de la "methode1", la "methode1" est depilee de la pile d'execution.
 
Je n'ai pas le droit de toucher au corps des methodes 1, 2, etc. car elles font parti d'une IUT (Implementation Under Test). C'est un systeme que je dois tester de "l'exterieur", et je dois pouvoir verifier qu'il se comporte bien, en appelant les bonnes methodes.
 
En fait, c'est un espece de traceur / debugger que je dois faire.
 
Merci d'avance pour votre aide,
 
piloupy

Reply

Marsh Posté le 27-07-2006 à 12:43:46   

Reply

Marsh Posté le 27-07-2006 à 12:55:30    

Exception.getStackTrace()
bon amusement.
 
Sinon, l'aop, ça pourrait t'aider de maniere plus propre.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 08-08-2006 à 11:19:32    

Si tu as juste besoin de savoir quelles méthodes ont été exécutées mais pas leur ordre d'appel tu as aussi la possibilité d'utiliser un outil de couverture de code (clover, cobertura, jcoverage...). Ils vont instrumentaliser le bytecode sans modifier le code source pour noter les lignes exécutées.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed