Crossfire JXClient, Trunk
Functions | Variables
build/windows-installer/unpacked/java-se-8u41-ri/demo/jvmti/hprof/README.txt File Reference

Functions

README Design and then moved to a package that didn t cause classload errors due to the security manager not liking the sun *package name detected that this class needs to be in com sun demo jvmti hprof The BCI code will call these static methods which will in with the additional current Thread argument (Thread.currentThread()). Doing the currentThread call on the Java side was necessary due to the difficulty of getting the current thread while inside one of these Tracker native methods. This class lives in rt.jar. *Byte Code Instrumentation(BCI) Using the ClassFileLoadHook feature and a C language implementation of a byte code injection transformer
 
is injected On entry to all a invokestatic call to Tracker CallSite (cnum, mnum)
 
is injected All classes found via ClassFileLoadHook are injected with the exception of some system class methods< init > and finalize whose length is and system class methods with name< clinit > and also java lang Thread currentThread () which is used in the class Tracker(preventing nasty recursion issue). System classes are currently defined as any class seen by the ClassFileLoadHook prior to VM_INIT. This does mean that objects created in the system classes inside< clinit > might not get tracked initially. See the java_crw_demo source and documentation for more info. The injections are based on what the hprof options are requesting
 
is injected The hprof agent can map the two integers (cnum, mnum) to a method in a class. This is the BCI based "method entry" event. - On return from any method(any return opcode)
 
is injected On any newarray type immediately following the array object is duplicated on the stack and an invokestatic call to Tracker NewArray (obj)
 
README Design and then moved to a package that didn t cause classload errors due to the security manager not liking the sun *package name detected that this class needs to be in com sun demo jvmti hprof The BCI code will call these static methods which will in with the additional current Thread the following bytecodes get a invokestatic call to Tracker ObjectInit (this)
 
is injected The hprof agent can map the two a invokestatic call to Tracker ReturnSite (cnum, mnum)
 
README Design and then moved to a package that didn t cause classload errors due to the security manager not liking the sun *package name detected that this class needs to be in com sun demo jvmti hprof The BCI code will call these static methods which will in turn (if engaged) call matching native methods in the hprof library
 

Variables

is injected All classes found via ClassFileLoadHook are injected with the exception of some system class methods< init > and finalize whose length is and system class methods with name< clinit > and also java lang Thread e g if the newarray and Object< init > method injections happen If cpu =times is requested
 
is injected All classes found via ClassFileLoadHook are injected with the exception of some system class methods< init > and finalize whose length is and system class methods with name< clinit > and also java lang Thread e g if heap =sites or heap=all is requested
 
README Design and Implementation
 
README Design and then moved to a package that didn t cause classload errors due to the security manager not liking the sun *package name detected that this class needs to be in com sun demo jvmti hprof The BCI code will call these static methods which will in with the additional current Thread the following bytecodes get injections
 
is injected On any newarray type immediately following it
 
is injected On entry to all methods
 
is injected All classes found via ClassFileLoadHook are injected with the exception of some system class methods< init > and finalize whose length is and system class methods with name< clinit > and also java lang Thread e g if the newarray and Object< init > method injections happen If all methods get their entries and returns tracked Options like or an index into the object table inside the hprof code Depending on whether these ObjectIndex s might represent unique objects
 
is injected On any newarray type opcode
 

Function Documentation

◆ argument()

README Design and then moved to a package that didn t cause classload errors due to the security manager not liking the sun* package name detected that this class needs to be in com sun demo jvmti hprof The BCI code will call these static methods which will in with the additional current Thread argument ( Thread.  currentThread())

◆ CallSite()

is injected On entry to all a invokestatic call to Tracker CallSite ( cnum  ,
mnum   
)

◆ currentThread()

is injected All classes found via ClassFileLoadHook are injected with the exception of some system class methods<init> and finalize whose length is and system class methods with name<clinit> and also java lang Thread currentThread ( )

◆ integers()

is injected The hprof agent can map the two integers ( cnum  ,
mnum   
)

◆ NewArray()

is injected On any newarray type immediately following the array object is duplicated on the stack and an invokestatic call to Tracker NewArray ( obj  )

◆ ObjectInit()

README Design and then moved to a package that didn t cause classload errors due to the security manager not liking the sun* package name detected that this class needs to be in com sun demo jvmti hprof The BCI code will call these static methods which will in with the additional current Thread the following bytecodes get a invokestatic call to Tracker ObjectInit ( this  )

◆ ReturnSite()

is injected The hprof agent can map the two a invokestatic call to Tracker ReturnSite ( cnum  ,
mnum   
)

◆ turn()

README Design and then moved to a package that didn t cause classload errors due to the security manager not liking the sun* package name detected that this class needs to be in com sun demo jvmti hprof The BCI code will call these static methods which will in turn ( if  engaged)

Variable Documentation

◆ cpu

is injected All classes found via ClassFileLoadHook are injected with the exception of some system class methods< init > and finalize whose length is and system class methods with name< clinit > and also java lang Thread e g if the newarray and Object< init > method injections happen If all methods get their entries and returns tracked Options like or an index into the object table inside the hprof code Depending on whether these ObjectIndex s might represent unique or unique allocation sites for types of objects The this could be improved by not having the Tracker class methods call native code directly but accumulate the data in a file or memory somehow and letting it buffer down to the agent The cpu =times is requested

Definition at line 84 of file README.txt.

◆ heap

is injected All classes found via ClassFileLoadHook are injected with the exception of some system class methods< init > and finalize whose length is and system class methods with name< clinit > and also java lang Thread e g if the newarray and Object< init > method injections happen If all methods get their entries and returns tracked Options like or an index into the object table inside the hprof code Depending on whether these ObjectIndex s might represent unique or unique allocation sites for types of objects The this could be improved by not having the Tracker class methods call native code directly but accumulate the data in a file or memory somehow and letting it buffer down to the agent The varying the interval as needed The heap =sites or heap=all is requested

Definition at line 82 of file README.txt.

◆ Implementation

README Design and Implementation

Definition at line 38 of file README.txt.

◆ injections

README Design and then moved to a package that didn t cause classload errors due to the security manager not liking the sun* package name detected that this class needs to be in com sun demo jvmti hprof The BCI code will call these static methods which will in with the additional current Thread the following bytecodes get injections

Definition at line 53 of file README.txt.

◆ it

is injected On any newarray type immediately following it

◆ methods

is injected On entry to all methods

Definition at line 62 of file README.txt.

◆ objects

is injected All classes found via ClassFileLoadHook are injected with the exception of some system class methods<init> and finalize whose length is and system class methods with name<clinit> and also java lang Thread e g if the newarray and Object<init> method injections happen If all methods get their entries and returns tracked Options like or an index into the object table inside the hprof code Depending on whether these ObjectIndex s might represent unique objects

Definition at line 93 of file README.txt.

◆ opcode

is injected On any newarray type opcode

Definition at line 57 of file README.txt.