On 2/26/08, Gregory Shimansky <[EMAIL PROTECTED]> wrote:
>
> Jimmy,Jing Lv said the following on 26.02.2008 12:15:
> > Hi,
> >
> > 2008/2/26, Ivan Popov <[EMAIL PROTECTED]>:
> >> JDWP agent and transport implementation was developed independent on
> >> Harmony's drlvm and classlib implementations in order to be run easily
> >> on top on any JVM. That's why it does not use any portlib support for
> >> platform dependent code.
> >>
> >> I agree, however, it would be better to re-use platform dependent
> >> support from portlib to facilitate porting jdwp code to other
> >> platforms. The only such code is TCP/IP sockets api used in dt_socket
> >> transport and loading transport DLL in the agent itself. All other
> >> code is based on standard JVMTI api and thus is platform independent.
> >>
> >
> > I notice the DLL loading as well. I have an idea here that shall we
> > start with java-level lib loading process? For Java code it may be
> > quite easy to do such work as:
> > System.loadLibrary("libname");
> >
> > We can do similar things. What does native code do in this
> > "System.loadLibrary", does vm/classlib native code support such API
> > for work? If so, we may
> > 1) directly call that API to load lib and avoid platform differences
> > If no, we may
> > 2) create a java class to do the such work, reflect in the native
> > TransportManager. Though it may be a little strange and slower in
> > performance, it may also works.
> >
> > Any VM guru know what's happening in the System.loadLibrary()? Would
> > it be used without java-level call?
>
> I am not sure that using Java is possible here. First, agent's
> initialization happens in ON_LOAD phase [1] where VM doesn't allow to
> execute any Java code yet.
>
> Second, even if you make a call to System.loadLibrary (Java or
> underlying native function) you'd need the library handle to obtain
> (with a platform dependent function) function pointers from it.
Agree, System.loadLibrary, in my opinion is not so appropriate in this
case.
> [1] http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html#GetPhase
>
> --
> Gregory
>
>
--
Good luck!
Leo Li