2009-10-14 4 views

Répondre

1

Vous voudrez peut-être lire this cela explique assez bien cela. Le bit que vous cherchez est RemoteStackFrame, c'est comme ça que les choses peuvent avoir des choses qui sont actuellement dans la portée

C'est un sujet compliqué mais j'espère que ça aide.

1

Si vous utilisez Eclipse, vous pouvez utiliser l'API fourni avec Eclipse JDT. Ceux-ci seront disponibles si vous allez créer un projet Plugin.

1

IDE utilise généralement une combinaison d'une API de débogage, telle que celle fournie par [Java Platform Debugger Architecture] [1] et sa connaissance de la structure du code qu'il débogue. La lecture des valeurs de la variable locale (même pendant le débogage) nécessite que les fichiers de classe soient compilés avec les informations de débogage. En Java (comme dans de nombreux autres langages), les informations de débogage doivent être générées explicitement pour être accessibles lors de l'exécution. Des variables spécialement locales et un mappage du bytecode aux numéros de ligne source. L'API [JDI] [2] est assez facile à utiliser pour implémenter un débogueur simple. Mais si ce que vous cherchez est une sorte de réflexion sur les variables locales, vous n'avez pas de chance. La seule chose que je peux penser pour ce dernier cas est d'utiliser une sorte de bibliothèque de manipulation bytecode comme [BCEL] [3] ou [ASM] [4] et de modifier le bytecode avant de le charger pour vous permettre d'accéder les valeurs des variables à l'exécution.

Cela ralentira sûrement le code et sera difficile à mettre en œuvre. En fin de compte, il sera probablement plus facile d'éviter le problème si vous prenez du recul et y réfléchissez.

(désolé pour les liens déchiquetés, mais StackOverflow limite le nombre de liens)

[1]: http: // java.sun.com/javase/technologies/core/toolsapis/jpda/ [2 ]: http: // java.sun.com/javase/6/docs/jdk/api/jpda/jdi/index.html [3]: http: // jakarta.apache.org/bcel/ [4] : http: // asm.ow2.org/

Questions connexes