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: [jdktools][JDWP] proposal to improve JDWP with shared memory and update to java6
Date Fri, 11 Jan 2008 14:12:33 GMT
2008/1/9, Gregory Shimansky <gshimansky@apache.org>:
> On 8 января 2008 Jimmy,Jing Lv wrote:
> > Hi All,
> >
> >     I've done some study on the Harmony JDWP. The current JDWP is of
> > high quality and well-tested (really good job! :)).
> >     However compared with RI's implementation, I find RI has a
> > shared-memory transport (startup like "java
> > -agentlib:jdwp=transport=dt_shmem"). As Harmony's target is compatible
> > with RI, we may implement a shared-memory transport as well as RI
> > does. Do some one already has such plan? Or I'd like to implement in
> > the near future.
> >     A further study in windows API shows we may not use shared memory
> > directly, windows pipe api (pipe is also a kind of "shared memory", is
> > it?) may be a good alternative. In all we need to implement
> > open/read/write/select/close operations with pipe/shared-memory and
> > implement agent-load/unload shared-memory agent and error-handling
> > like socket-transport do.
> I think we should need the same method that the client (eclipse or whatever
> IDE or debugger) use for connecting to the agent. Since clients are usually
> written in Java the method should be done in the same way it is done in Java
> API. I am not aware of however with a way for a Java application to use
> shared memory or windows pipe API. Do you know some client debugger or
> profiler that uses dt_shmem method and API that it uses for connection to the
> debuggee?
     Sorry for late reply. I meet some trouble of my desktop, may come
back for full-time job next week :)
     In fact RI's Command Line Launching Connector used shared memory
transport defaultly(and TCPIP for solaris and linux). Maybe it shall
be high performance when using shared memory in windows? However, if
user call "-agentlib:jdwp=transport=dt_shmem" on Harmony, we may
choose :
1. implement our share memory for user' application
2. use TCPIP and protend it is used share memory :)
    However option 1 seems more reasonable for me :)

> >     And I also notice that there' s some updates on JDWP-protocol in
> > java6, e.g, some new commands on
> > VirtualMachine/ReferenceType/ObjectReference/ThreadReference/CapabilitiesNe
> >w Command Set, which is necessary for Java6 implemetation. We may also
> > implement them in a tools Java6 branch (currently only classlib has Java6
> > branch, we may also build a repository for others? ) I'm not sure DRLVM has
> > a plan to update vmi/jvmti to java6 level, however I think update JDWP
> > first will do no harm.
> Well, eventually we'll have to have a version of DRLVM for Java6 (whether it
> is going to be a branch, compile time define or some other way is a subject
> for a separate discussion). In any case, JDWP agent should be working with
> RI, so it is possible to add updates for new JDWP protocol functionality and
> test it with RI for now. Again, maybe it will require a separate branch for
> jdktools or build time define flag.

A great news. We may raise a JIRA to record this and do further follow-ups :)

> >      Any suggestion/comments? I may start further study/plan and
> > implementation for this if no objection.
> I think it would be great to start supporting Java6 features not only in class
> library!

Sure, of course, Harmony is growing for future! :) Thanks Gregory!

> --
> Gregory


Best Regards!

Jimmy, Jing Lv
China Software Development Lab, IBM
View raw message