harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jimmy, Jing Lv" <firep...@gmail.com>
Subject Re: [classlib] Intention to work on java.lang.instrument
Date Tue, 01 Aug 2006 07:34:52 GMT
Leo Li wrote:
> On 7/31/06, Gregory Shimansky <gshimansky@gmail.com> wrote:
>>
>> 2006/7/31, Jimmy, Jing Lv <firepure@gmail.com>:
>> >
>> > >       Besides, Harmony VM now has actually support the feature of
>> JVMTI
>> > > on which we can implement instrument.
>> > >
>> >
>> > Ah, can it work now? It'll be great convenient if so.
>>
>>
>> Hello. The drlvm does support a subset of JVMTI. Class loading events are
>> supported, ClassFileLoadHook which may be used for load time class
>> instrumentation is supported too. But there is no support for
>> RedefineClasses yet if you need to change classes bytecode after the 
>> class
>> was loaded already.
>>
>> >
>> > >    After some study on this, I find Java interface classes/interfaces
>> > >> are quite easy, but there should be real implement, both in java and
>> > >> native. And the native code requires JVMTI[2], which is a part of VM
>> 5.
>> > >> Though, luckily we can still study and code according to JVMTI and
>> test
>> > >> on RI. So my goal is : 1.define those simple Java classes/interfaces
>> in
>> > >> Harmony; 2. work out implementation of java/native code according to
>> > >> JVMTI and make it run on RI; 3. wait for Harmony VM5 and then make
>> some
>> > >> integration modification/test.
>> > >
>> > >
>> > >      As the main function of instruments is to add and remove
>> > transformers
>> > > to some classes, I suggest implement it as an agent of JVMTI. That is
>> to
>> > > register callback functions, which actually transform the byte stream
>> of
>> > > some specified classes,  to the events that is relevent to instrument
>> in
>> > > JVMTI including
>> > > the class loading.
>> > >
>> >
>> > Yes, that's the way.
>>
>>
>> I agree with this approach. Do you know which API functions and events 
>> you
>> will need for such agent?
> 

Thanks you Gregory :) Refer to JVMTI Functions doc[1], I think functions 
of Memory Management/Class/Capability is necessary.

[1]http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html#FunctionIndex

> 
> Hi, we will need VM Initialization Event to run premain functions and Class
> File Load Hook Event for agents to instruct the existing class file. As to
> the jvmti API, we need RedefineClasses,GetObjectSize and Allocate. Besides,
> AddCapabilities is also required to turn on the capability of the VM, such
> as can_generate_all_class_hook_events and can_redefine_classes.
> 

That's detail, thanks :)

> Since we have just planned to implement this module, please excuse me if I
> leave some requirements about it. :)
> 

And for VM guys ,the launcher with parameter "-javaagent":)

> 
> 
>> -- 
>> Gregory Shimansky, Intel Middleware Products Division
>>
>>
> 
> 


-- 

Best Regards!

Jimmy, Jing Lv
China Software Development Lab, IBM

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message