使用Netbeans开发调试OpenJDK中的HotSpot

编译OpenJDK请看我上一篇文章RedHat/CentOS linux 6 环境编译openJDK7

一、下载并安装Netbeans 7.0.1 (c/c++)
http://share.weiyun.com/6292e450ed1c88423812e268f355a108
或者官网下载https://netbeans.org/community/releases/70/
ps:之所以使用7.0.1版本,是因为我在使用8.1,8.0,7.4版时,不能进行正常的Debug。

二、使用Netbeans调试
1、新建项目
这里写图片描述

指定makefile
这里写图片描述

/usr/application/tools/openjdk/hotspot/make/Makefile

然后一直默认下一步,直到完成为止

2、运行配置
项目右键选择属性,进行参数设置
这里写图片描述
(1)修改生成命令

${MAKE} -f Makefile clean jvmg ALT_BOOTDIR=/usr/application/tools/jdk1.6.0_26 ARCH_DATA_MODEL=64 LANG=C ZIP_DEBUGINFO_FILES=0 

(2)修改运行命令、运行目录、环境
这里写图片描述
修改运行命令,Queens 是需要运行的class文件,你可以使用自己的类文件替换

/usr/application/tools/openjdk/hotspot/build/linux/linux_amd64_compiler2/jvmg/gamma
-XX:StopInterpreterAt=1 -version Queens

修改运行目录

/usr/application/tools/openjdk/hotspot/make

修改环境
这里写图片描述

**LD_LIBRARY_PATH** /usr/application/tools/openjdk/hotspot/build/linux/linux_amd64_compiler2/jvmg
**JAVA_HOME** /usr/application/tools/openjdk/build/linux-amd64-debug/j2sdk-image
**CLASSPATH** 
..:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/root/Desktop

注意:这里要把Queens所在的目录添加到环境CLASSPATH里面。

3**、运行或调试源代码**
这里写图片描述

如果想调试源代码,可以找到HotSpot的入口java.c的main函数,并设置断点
这里写图片描述

编译运行的时间有点长,耐心等待即可。

你可能感兴趣的:(OpenJDK,JVM)