Since Jikes RVM is written in Java, the application and VM call into the same Java libraries. If you want to change only the application's behavior and not the VM's behavior, it's difficult to handle the libraries (i.e., to instrument/modify only libraries called by the application but not the VM). This patch clones library methods so that each library method has two versions: one called by the application and one called by the VM. Instrumenting/modifying only libraries called by the application is then as straightforward as checking which version of a library method is being compiled.
Attached is a patch against Jikes RVM 3.1.2 that provides this functionality. The patch also adds a README that provides more details: static-cloning/README-static-cloning.txt
Log in to post a comment.