On 03/05/2017 07:43, Thomas Stüfe wrote:
Hi all,
I wonder why the sources of the transport libraries are located in
different places:
jdk/src/jdk.jdwp.agent/share/native/libdt_socket
jdk/src/jdk.jdi/share/native/libdt_shmem
Is there a particular reason to this?
Seeing as they both are implementations of the jdwp sp interface, I
would have expected them to be located side by side?
jdk.jdwp.agent is the backend/debuggee side so it has the JDWP agent and
should contain the transport libraries used by the JDWP agent.
jdk.jdi is the frontend/debugger side so it has the JDI API and the
connector and transport services that JDI uses.
For the shared memory transport then it should ideally be split so that
a reduced libdt_shmem is in jdk.jdwp.agent and the JDI side is is
jdk.jdi. Refactoring is needed to do this right and just hasn't been a
priority.
BTW: Having it in jdk.jdi isn't actually too bad because the shared
memory transport is local (debugger and debuggee on the same machine).
Also it tends to be used by the launching connector which is in jdk.jdi.
-Alan