I am new to this emma world! Just trying to figure out what code emma injects to the class that is instrumented and where? I read in this forum that Emma injects some byte code after each basic block. Can anyone answer me the following questions
1) What exact byte code is injected at the end of each basic block?
2) What is the impact of those byte codes in term of performance, security and JVM?
3) I saw someone said byte code injection changes the line numbers in the class file and has some impact in the JVM in terms of variable location, stack table etc. What are those impacts to JVM due to these injections?
4) Is there any behavioral change of instrumented classes while interacting certain classes which are instrumented within same/different package or using methods of other external or internal classes which are not instrumented compare to their original class behavior which earlier was not instrumented and worked fine?
5) Can any instrumented class cause improper behavior to the existing application and what are those probable impacts?
6) Can we use certain instrumented class in production env and is there any risk of malfunctioning of the application in production system?
7) Is there any security issue using instrumented class in production?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
I am new to this emma world! Just trying to figure out what code emma injects to the class that is instrumented and where? I read in this forum that Emma injects some byte code after each basic block. Can anyone answer me the following questions
1) What exact byte code is injected at the end of each basic block?
2) What is the impact of those byte codes in term of performance, security and JVM?
3) I saw someone said byte code injection changes the line numbers in the class file and has some impact in the JVM in terms of variable location, stack table etc. What are those impacts to JVM due to these injections?
4) Is there any behavioral change of instrumented classes while interacting certain classes which are instrumented within same/different package or using methods of other external or internal classes which are not instrumented compare to their original class behavior which earlier was not instrumented and worked fine?
5) Can any instrumented class cause improper behavior to the existing application and what are those probable impacts?
6) Can we use certain instrumented class in production env and is there any risk of malfunctioning of the application in production system?
7) Is there any security issue using instrumented class in production?