Contexte: Dans mon projet Java, je suis en train d'injecter une classe (par exemple Injected.java) et aussi du byte-code en injectant une référence à une méthode dans Injected.java, de sorte que cette méthode définit la valeur d'une instance membre. C'est une façon de vérifier que je suis un octet de code qui injecte la bonne chose. Lors de l'exécution, la valeur de la variable d'instance n'est pas définie comme prévu, ce qui signifie que mon injection de code octet n'a évidemment pas bien fonctionné.comment déboguer le code octet injecté dans la machine virtuelle au moment du chargement de la classe?
Question: 1) Comment examiner le contenu de ma classe (nouvellement injectée + modifiée) chargée dans la JVM au moment de l'exécution? (javap aide à faire cela pour les classes existantes) 2) Puis-je déboguer via Eclipse, le code d'injection de code octet? Y at-il un plug-in
Toute suggestion est appréciée.
Cela ne traite pas le cas d'utilisation de l'OP, ou de répondre à l'une de ses questions. Il veut examiner les bytecodes qu'il a injectés au moment de l'exécution, et non les codes qui ont été injectés dans les classfiles avant l'exécution.(Et comme il le dit, 'javap' le fait de toute façon.) –
BTW - il est impoli de downvote quelqu'un d'autre répond. Et faire cela sur la base de l'inutilité lorsque votre réponse est encore moins pertinente est assez boiteux, OMI. –
Malheureusement, j'ai appris à voter en bas de stack-overflow. voir ce http://stackoverflow.com/questions/3868878/java-check-if-command-line-arguments-are-null. BTW, si vous voulez vous lever, éditer la réponse, je vais up-voter :) –