From dev-return-36669-apmail-harmony-dev-archive=harmony.apache.org@harmony.apache.org Wed Apr 01 13:57:11 2009 Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 49783 invoked from network); 1 Apr 2009 13:57:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 1 Apr 2009 13:57:11 -0000 Received: (qmail 58029 invoked by uid 500); 1 Apr 2009 13:57:11 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 57963 invoked by uid 500); 1 Apr 2009 13:57:10 -0000 Mailing-List: contact dev-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list dev@harmony.apache.org Received: (qmail 57952 invoked by uid 99); 1 Apr 2009 13:57:10 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Apr 2009 13:57:10 +0000 X-ASF-Spam-Status: No, hits=2.2 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of huj.nju@gmail.com designates 209.85.221.121 as permitted sender) Received: from [209.85.221.121] (HELO mail-qy0-f121.google.com) (209.85.221.121) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Apr 2009 13:57:04 +0000 Received: by qyk27 with SMTP id 27so84553qyk.20 for ; Wed, 01 Apr 2009 06:56:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=kRncsnHNyj90jN6KRqG3n8Eu7ID+S8t+SLl02T+BIwo=; b=JjYBTZvTXrM6asiStf9d23+ZPpb37I0Hv49aNoZ0szqZV1JOov7ALVubjKWiEhsBNx 9mL8FFLZrN/15nZJjmvOhDvfVasSPLUEyW+Z3wOLdpOtISCmJvwqa+zRoMlNLQe4vKMa vqfQ5sPGuhGQZqblAu0kg5DPhCtNBvCBxu3L4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=UGYa3DcXlFniu0WcH7nSvHcnOYkiDKV//tnH1mbOWAgrfXnwKpkQsvtPtv79V+fW8Z BJYqea1v/PHnNCWtbf02zcj2a1teaSdV1tOnw7yLByisM5xilaC8FXVpPTUBpw2o0qtt db0C9iHj2CLMlAYM3qiNs6YVzehu85eOH1X+w= MIME-Version: 1.0 Received: by 10.229.91.13 with SMTP id k13mr2983399qcm.98.1238594203064; Wed, 01 Apr 2009 06:56:43 -0700 (PDT) Date: Wed, 1 Apr 2009 21:56:43 +0800 Message-ID: <18f875b90904010656l6bc5fd5bq8d85bab32f310604@mail.gmail.com> Subject: [GSoC] Proposal For jdb command line debugger tool. From: hu jing To: dev@harmony.apache.org Content-Type: multipart/alternative; boundary=0016361e81347e9c0904667eaff5 X-Virus-Checked: Checked by ClamAV on apache.org --0016361e81347e9c0904667eaff5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi all, I am interested in the "jdb command line debugger tool". I find Sun jdb is not very friendly to developers. I want to add some useful function to this tool. Such as, Auto-complete command line, smart format for the user input. And we can also supply some interfaces to further development. Wen Dong(zwd2005@gmail.com) and I want to participate in this tool development. We are from the same laboratory of the Department of Computer Science of Nanjing University. We worked together for two years and now we are both interns in IBM CDL. I think we can work out the debugger tool pretty. The popular architecture is JPDA(Java Platform Debugger Architecture). JPDA contains three parts: JVMTI, JDWP and JDI. JVMTI(Java Virtual Machine Tool Interface) supply a set of native interface supplied by JVM. The development based on the JVMTI level is complex and hard to be extended and modified. JDWP supplies a standard protocol for the communication between the debugger and debuggee. And it also provides the socket interface. JDI is debug interface. It is mostly implemented in Java. JVMTI and JDWP are based native code. We want to implement the java command line debugger tool in C/C++ considering efficiency. We will use JDWP interface for development efficiency and Portability. The following is our main idea for this tool: 1.format the user input. 2.validate the command arguments. 3.Create connection between debugger and JVM, and here we can use the JDWP Transport Interface. Based on the JDWP, We create packages containing the command information and send packages to JVM by using the transport interface. JVM will process these packages and send the feedback to the debugger. And we will process this information. 4.print the message on the console. Schedule: We can work 20 hours each week. April 4 ~ April 30: Be family with JDWP and JDWP Transport Interface. May 1 ~ May 22: meet our mentors, read the documentation and get some suggestions from our mentors. May 23 ~ May 30: to determine the final framework and algorithm details, divide the work with my partners. June 1 ~ June 30: coding. July 1 ~ July 5: integration, test and debug for mid-term evaluations. July 6 ~ August 11: process the debug, documentation and integration. August 12 ~ August 24: write test unit, debug and final release. Jing Hu , WenDong Zhang. --0016361e81347e9c0904667eaff5--