All the source code for the Serviceability Agent is in
src/share/vm/agent in the HotSport workspace
You can build the project by typing
gnumake in the
You can also use the default build target using the Ant build file (build.xml). You can download Ant from http://jakarta.apache.org/ant. Documentation for Ant can be found at http://jakarta.apache.org/ant/manual/index.html
java -cp classes sun.jvm.hotspot.HSDB
java -cp classes sun.jvm.hotspot.bugspot.Main
Refactoring of package hierarchy. All user interface components should be in the ui package. Perhaps: sun.jvm.hotspot.ui.hsdb.Main for the HSDB and sun.jvm.hotspot.ui.bugspot.Main for BugSpot.
The src\share\vm\agent area seems like a workspace so it should be organized like
one. In particular, I'd like to suggest the following directory layout:
Seems like there is a lot of redundant functionality. Between the HSDB and BugSpot. Perhaps
this can be consolidated with a
Stack memory pane: It's one of the more useful JVM debugging tools in the SA. However, it doesn't support any interaction with the text; the Memory Panel in BugSpot was written afterward (with help from Shannon) and implements proper selection, scrolling, and drag-and-drop, but no annotations. I'm not sure how to integrate the annotations with the JTable that's being used for the memory view; if you have suggestions here please let me know.
Integrations with the NetBeans architecture (plug in). See the Netbeans Open APIs homepage
HSDB: Object Histogram. Column sizes should be sized according the the contents. i.e, The size and count columns should be narrow enought to handle the largest window. Since there is a lot of data, sorting and searching should be implemented.
sun.jvm.hotspot.oops.ObjectHistogram should be the underlying data structure for the TableModels. It shouldnt bother with sorting the data - the table model should do that. It should implement these methods:
public int getSize() public ObjectHistogramElement getElementAt(int row);
ObjectHistogramElement should return the String that represents the third column