harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Gong <daniel.gong.fu...@gmail.com>
Subject [GSoC] Proposal for HARMONY-6457
Date Sat, 03 Apr 2010 09:27:05 GMT
Hello everyone,

    Last year I've worked as a gsoc student in Harmony and learned a lot
during the project. I'm eager to participate gsoc 2010 and looking forward
to working in Harmony as well :)

    I've submit my proposal to the gsoc project website. For your
convenience, I'd like to post it here and discuss it with you. I've skimmed
through the document of JPDA and I'm currently read some jdwp source code to
get familiar with the logging system.


*Student Name:*

Linghui Gong

*Student E-mail:*


*Student Major:*

Computer Science

*Student Degree:*

Studying for Master of Science Degree, 2nd year


Harmony Project, The Apache Software Foundation

*Assigned Mentor:*

Sean Qiu

*Proposal Abstract:*

The aim of the project is trying to enhance harmony's jdwp log system to
facilitate jdwp debugging by adding support of thread information and
implementing a log analyzer to sort log messages according to user demands
and find out bug-prone message.

*Detailed Description:*

Harmony current JDWP agent have full logging functionality. But all log
messages are messed up regardless of its running thread information.

On the other hand, Harmony JDWP support a lot of types log level, user need
to rerun the appilcation to get different type of log. It would be much
convenient if we have a log analyzer to help sort out log messages, then we
can only need get the all log message.

This project should include the following steps:
1. Modify the jdwp agent code to support thread information in the log.
2. Implement a log analyzer that can sort out different kind of log messages
according to user demands.
3. Improve the log analyzer to make it enable to analyze the log message
sequence with context and find out bug-prone log message.

I've read part of the jdwp source code and I believe the first two steps are
not difficult to implement. The last step is a challenging one.

In my understanding, some messages may be judged as bug-prone one only with
information from itself and others may need context to decide, which
indicates that sequence analysis should be included in the analyzer. Methods
such as rule-based classification or heuristic pattern recognition can be
employed to accomplish the task. In my experience, I've used CRF(Conditional
Random Fields) to analyze sentences and tag words and phrases. It works
well. However, currently I'm not very sure that this is the best choice for
this project. Several literature I've read claimed that rule-based
classification costs less but is more adjustable and gives decent result. I
need to do more investigating.

*Draft Timeline*

   - Week 1      Read and understand the JDWP logging related code;
   - Week 2      Read and get familiar with the JDWP and JVMTI document;
   - Week 3-4   Complete the thread information support;
   - Week 5-6   Implement the log analyzer initial version with log sorting
   - Week 7-10  Add the bug-prone message judgement functionality to the
   - Week 11    Fix all bugs left and complete the documentian work.

*Available Time*

   - Generally, I have 14~16 hours per week in average guaranteed working on
   the subject.
   - I'm a 2nd year graduate student and do not have any classes or exams to
   attend, which allow me to have enough time to complete the project.

 *Additional Information:*

I've been learning and using Java since 4 years ago. In the past I've
complete several projects based on java, including a mini library management
system, a text stream clustering system, a search engine project based on
Apache Lucene. I've got rich experience of Java language, programming and
debugging from them.

Last year I've participated in Google Summer of Code and successfully
accomplished the harmony-classes-selector project of Harmony under the
mentoring of Regis. In the project, I came across JVMTI in the first time
and built an agent for the project. As a result, I became very interested in
Java runtime technology and I've learned and got to know more knowledge in
this area including Java class file format, instrumentation, JPDA and so on.

I believe these professional knowledge and my other knowledge in programming
and software architecture can help me to learn fast and handle the problem.

I'm 24 years old, living in Shanghai, China, studying in Fudan University.

Thanks for your attention!

Best wishes
Daniel Gong

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message