A project idea for OpenJDK...
By sundararajan on May 25, 2007
You probably checked out the OpenJDK project and even built it on your favorite platform. And you are wondering how can you do a small, but interesting project with OpenJDK. In Nov 2006, I mentioned about HotSpot Serviceability Agent (SA) which is a set of APIs and tools for debugging HotSpot Virtual Machine processes and core dumps. You may want to look at HotSpot Serviceability page and HotSpot SA sources in the hotspot/agent/ directory and the subdirectories.
One of the components of HotSpot SA is (pure Java) disassemblers for SPARC and x86 processors. These are used to view HotSpot compiled code, HotSpot interpreter code (recall that hotspot Java bytecode interpreter is generated at the start of the virtual machine) as well as the compiled C/C++ code of the virtual machine. You may want to refer to the asm and subdirectories. But, there is no disassembler yet for AMD64.
Maxwell Assembler Framework has assemblers and disassemblers for SPARC, PowerPC, AMD64 and IA32. From the project web page:
The architecture of our system is largely based on the Klein assembler system, which has been developed in the Klein project. Its main idea is to generate assembler methods that are very well tested against existing textual assemblers.
How about using the Maxwell framework with HotSpot SA? It will get us AMD64 disassembler and we can replace the existing disassemblers for SPARC and x86 as well! I think this is a small enough, but interesting project to work on.