Hi Nicolas, Thanks very much for your work on this. I don't have time to process this today, but I hope to soon.
I'm secretly hoping that I'll get the binary packaging issues and distro issues sorted out, and finish all documentation updates in the next week or so. Then I can release 0.15 officially. From then on, I want to make monthly releases, and keep the tree in a releasable state at all times. So I may wait until after the release to fully incorporate your patches. August may be JDWP month. :-) Also, the patches are really big... I don't mind the odd huge patch, but some mailing list subscribers might not like it if it happens too often. We can use this patch as "starting point 0" if you like, and you can post patches against this to reduce the size. Or, you could create a git fork on repo.or.cz and post everything there. Either one is fine with me. Thanks! - Chris On Thu, Jul 30, 2009 at 06:35:43PM +0200, Nicolas wrote: > Hi, > > I have worked about JDWP implementation with Barry. > > At first, you have to apply the patch on GIT barry source in attachment. > > Then, after re-build barry. You can build "bjdwp" application. > > For the moment, you can only do : > > 1??/ In first terminal : > $ bjdwp localhost 8080 > > 2??/ In a second terminal : > $ jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8080 > $ jdb> classes > $ jdb> resume > $ jdb> exit > > You can test the command "jdb> suspend", but there is a little bug :( > > In the first terminal (bjdwp), you can read JVM message (the > "System.out.println") > > I have implemented several commands (partially). I have to completed. > > > The next step is : > - reverse the BarryDemo.debug file (generated during the compilation). > Indeed, RIM's JDE builds a COD file and a ".debug" file. This file is > obviously usefull for JDWP. Otherwise, the "classes" command line > doesn't show the applications to debug. > - fix the "suspend" command. How ? > > > In fact, when the JVM is running, you have to poll the device : > > >>> URB 2416 > 00000000: 05 00 07 00 00 01 40 > <<< URB 2396 > 00000000: 00 00 0c 00 13 05 01 00 50 02 00 00 > <<< URB 2398 > 00000000: 05 00 06 00 00 0b > <<< URB 2399 > 00000000: 05 00 0f 00 00 09 56 4d 3a 2d 44 41 20 30 0a > > while a message is defined... If there isn't message : > > >>> URB 2420 > 00000000: 05 00 07 00 00 01 40 > <<< URB 2400 > 00000000: 00 00 0c 00 13 05 01 00 51 02 00 00 > <<< URB 2402 > 00000000: 05 00 06 00 00 02 > <<< URB 2403 > 00000000: 05 00 06 00 00 00 > > You have to call the USB command GET_STATUS : > > >>> URB 2424 > 00000000: 05 00 07 00 00 01 06 > <<< URB 2404 > 00000000: 00 00 0c 00 13 05 01 00 52 02 00 00 > <<< URB 2406 > 00000000: 05 00 06 00 00 00 > (wait a USB response...) > <<< URB 2407 > 00000000: 05 00 06 00 00 01 > <<< URB 2408 > 00000000: 05 00 05 00 8d > > This command is very important... > > You can launch JDB commands only after the URB 2406... > > So, we have to implement an infinite (or 60 seconde timeout) wait on USB > bulk read... and if "bjdwp" receive an order from JDB, we have to > interrupt the bulk read to excecute the order. > > To resume, we have two cases : > > First case : > >>> URB 2424 > 00000000: 05 00 07 00 00 01 06 > <<< URB 2404 > 00000000: 00 00 0c 00 13 05 01 00 52 02 00 00 > <<< URB 2406 > 00000000: 05 00 06 00 00 00 > ... > ... > <<< URB 2407 > 00000000: 05 00 06 00 00 01 > <<< URB 2408 > 00000000: 05 00 05 00 8d > > Second case : > >>> URB 2424 > 00000000: 05 00 07 00 00 01 06 > <<< URB 2404 > 00000000: 00 00 0c 00 13 05 01 00 52 02 00 00 > <<< URB 2406 > 00000000: 05 00 06 00 00 00 > ... > I have received an order from JDB > I interrupt the bulk read, then, I process... > When, the process is ended. > >>> URB xxx > 00000000: 05 00 07 00 00 01 40 > <<< URB xxx > 00000000: 00 00 0c 00 13 05 01 00 51 02 00 00 > ... > > > Chris, I have made the maximum to use the barry code style (packet, > protocol, traces...) "bjdwp" is coded with the same style than barry. > For the moment, I use "cmake", but when bjdwp will be good and useable, > I will use autotools. > > > If you have any questions about bjdwp, you can ask me... > > > Regards, > > -- > Nicolas VIVIEN > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Barry-devel mailing list > Barry-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/barry-devel ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Barry-devel mailing list Barry-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/barry-devel