harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver Deakin <oliver.dea...@googlemail.com>
Subject Re: [JDKTools][JDWP]Let's start JDWP java6 updating
Date Fri, 22 Feb 2008 12:07:00 GMT
Jimmy,Jing Lv wrote:
> Hi,
>
> 2008/2/22, Oliver Deakin <oliver.deakin@googlemail.com>:
>   
>> Hi Jimmy,
>>
>>  This is a great idea, but I have a feeling there may still need to be
>>  some work done on the current version. I have noticed the following:
>>
>>  1) You cannot launch Harmony with
>>  java -agentlib:jdwp=transport=dt_socket,server=n,address=8888
>>
>>     
>
> I notice this and it seems a bug of Launcher and let's add some lines
> on Launcher?
>   

Agreed - I think the launcher simply detects that there has not been a 
class specified and short cuts to the help text. Seems like we need to 
detect that the agentlib option has been passed and ignore the fact that 
there is no class name.

Interestingly, you can also launch the RI in server mode without 
specifying a class. For the following command line you get:

 >java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888
Listening for transport dt_socket at address: 8888
<prints RI command line help>

Whereas on Harmony we get:
 >java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888
<prints Harmony command line help>

It appears that the RI launcher is actually creating the VM and passing 
it no class name, at which point the VM initialises the jdwp module 
before discovering that no class has been specified and printing it's 
help text. In Harmony the command line help is printed by the launcher 
directly and we never create the VM if the class is not specified. There 
seems to be a fundamental difference between the way the RI and Harmony 
deal with outputting help text.

I have created HARMONY-5544 for this.

>> without specifying a class at the end of the command line. This is not a
>>  major issue, just a difference to the RI. If you run the above command
>>  line, the launcher short circuits to the launcher command line help and
>>  exits.*
>>  *
>>  2) If I try to launch two Harmony VMs using the following command lines:
>>  java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8888
>>  HelloWorld
>>  java -agentlib:jdwp=transport=dt_socket,server=n,address=8888 HelloWorld
>>
>>  I get lots of error output.
>>  Server side:
>>   INFO: [TransportManager.cpp:204] transport is listening on 8888
>>  ERROR: [CommandDispatcher.cpp:482] command not implemented
>>  EVENT/COMPOSITE[64/100]
>>  ERROR: [CommandDispatcher.cpp:482] command not implemented
>>  EVENT/***UNKNOWN COMMAND***[64/99]
>>  ERROR: [CommandDispatcher.cpp:482] command not implemented
>>  EVENT/***UNKNOWN COMMAND***[64/99]
>>  ERROR: [CommandDispatcher.cpp:482] command not implemented
>>  EVENT/***UNKNOWN COMMAND***[64/99]
>>  ERROR: [CommandDispatcher.cpp:482] command not implemented
>>  EVENT/***UNKNOWN COMMAND***[64/99]
>>  ERROR: [CommandDispatcher.cpp:482] command not implemented
>>  EVENT/***UNKNOWN COMMAND***[64/99]
>>  ERROR: [CommandDispatcher.cpp:482] command not implemented
>>  EVENT/***UNKNOWN COMMAND***[64/99]
>>  (repeats until I kill the process)
>>
>>  Client side:
>>  ERROR: [CommandDispatcher.cpp:482] command not implemented
>>  EVENT/COMPOSITE[64/100]
>>  ERROR: [CommandDispatcher.cpp:482] command not implemented
>>  EVENT/***UNKNOWN COMMAND***[64/99]
>>  ERROR: [CommandDispatcher.cpp:482] command not implemented
>>  EVENT/***UNKNOWN COMMAND***[64/99]
>>  ERROR: [CommandDispatcher.cpp:482] command not implemented
>>  EVENT/***UNKNOWN COMMAND***[64/99]
>>  (repeats until I kill the process)
>>
>>     
>
> Hmm, sorry I focus on unit testcases on the repository and it seems
> work quite well on them. Yes just now I have tried the command lines
> you offered, and it does appear on my desktop.
> >From the error message it seems passing some unknown commands to the
> dispatcher(Event Command 99, no such command at all ). I'd like to
> take a closer look into it :)
>   

Great, thanks Jimmy! I have noticed similar error output when we try to 
connect to the RI. For example, here the RI is the server and Harmony is 
connecting client:

(RI as server)
 >java 
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8888 
HelloWorld
Listening for transport dt_socket at address: 8888
ERROR: transport error 202: recv error: winsock error 0 ["transport.c",L70]
Listening for transport dt_socket at address: 8888
Hello World!

(Harmony as client)
 >java -agentlib:jdwp=transport=dt_socket,server=n,address=8888 HelloWorld
ERROR: [CommandDispatcher.cpp:482] command not implemented 
EVENT/COMPOSITE[64/100]
ERROR: [CommandDispatcher.cpp:482] command not implemented 
EVENT/***UNKNOWN COMMAND***[64/99]
ERROR: [PacketDispatcher.cpp:171] socket error (error code: 10053) [510]
Hello World!


> However,  as the updating is focus on protocol updating, it is nothing
> much related to this bug IMHO,  at least the new protocol commands are
> not. And I suggest writing more unit/standalone testcases on them so
> that to ensure the quality. And of course I'll take effect on this
> bug.
> As a result, I believe we can still go on with updating to java6,
> what's your opinion? :)
>   

Yes, I believe you're right, although I think it's important to also fix 
the issues listed above or we may not be able to use the new JDWP code ;)

Id like to help you resolve this and get our socket transport working. 
I've opened HARMONY-5543 for this issue.

Regards,
Oliver

>   
>>  Has anyone else seen this?
>>
>>  Regards,
>>  Oliver
>>
>>
>>  Jimmy,Jing Lv wrote:
>>  > Hi All,
>>  >
>>  >      As discussed before, we can start JDWP updating and improving.
>>  > IMHO, let's start from the easiest way, updating to java 6.
>>  >      My proposal is:
>>  > 1. Setup a branch of JDKTools for java6 in harmony repository
>>  > 2. add/improve JDWP functions into java6 level. As the main updating
>>  > for java6 JDWP is about JDWP-protocol, it seems no much effect on VM
>>  > and debugger.
>>  >
>>  >      As M5 freeze will be done at the end of this week,  may start
>>  > from next week on.  Any comments/suggestions/Volunteers? Thanks!
>>  >
>>  >
>>
>>  --
>>
>> Oliver Deakin
>>  Unless stated otherwise above:
>>  IBM United Kingdom Limited - Registered in England and Wales with number 741598.
>>  Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
>>
>>
>>     
>
>
>   

-- 
Oliver Deakin
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU


Mime
View raw message