Ubuntu 16.04系统下 对OpenJDK编译好的Hotspot 进行调试
2017-08-20 00:00
573 查看
摘要: Hotspot
经过一番挣扎终于成功讲Hotspot导入NetBeans中进行调试。
NetBeans的每个版本中按语言的支持程度分为好几种,这里我们需要的支持c/c++就可以了,理由很简单,因为Hotspot编译好以后是c++或者c文件。
不同版本,我指的是NetBeans8.2、8.1、8.0、7.4等版本对JDK版本是有要求的,所以最好下载一个最新版本的jdk(JDK不会装可以参考我上一篇博文),理由是在安装NetBeans的时候会要求你有jdk的支持,软件本身运行需要jdk支持。
安装的时候,由于是Linux版的,下载下来的是XXX.sh文件,ll一下看这个文件的权限发现不能执行,所以先在终端执行chmod +x XXX.sh赋予此文件执行的权限,然后./XXX.sh即可,卸载也是同理。还有疑问的可以点击这里
看我选项
这里要选择定制
找到make目录下的Makefile文件,NetBeans是根据这个来构建项目的。
之后直接下一步下一步finsh即可
第一步配置make,选择构建命令一栏然后输入下面一段配置
${MAKE} -f Makefile clean jvmg
根据自己的JDK路径来配置注意这个路径和之前安装NetBeans时候的JDK可以不是同一个,这个JDK和你时候编译用哪个有关
ALT_BOOTDIR=/home/maozuowei/software/jdk/jdk1.6/jdk1.6.0_45
这个属性表示你的电脑是64位的
ARCH_DATA_MODEL=64
LANG=C
ZIP_DEBUGINFO_FILES=0
第二步配置运行(这个每个人的情况都可能不一样), 文件搜索命令:locate:快,这个是从var/lib/mlocate.db里找的,系统默认一天自动更新,用sudo updatedb可以强制更新。只能搜索文件名。在终端输入locate gamma,这个时候可能会出现很多路径,找到像这样的路径/home/maozuowei/software/openjdk/build-debug/hotspot/outputdir/linux_amd64_compiler2/jvmg/gamma 一般结尾都是这个样子的,目录各自都不同。然后将你搜到的路径复制一份,黏贴到运行命令栏目里。然后配置环境变量,配置JAVA_HOME、CLASSPATH、LD_LIBRARY_PATH
博主例子:
LD_LIBRARY_PATH /home/maozuowei/software/openjdk/build-debug/hotspot/outputdir/linux_amd64_compiler2/jvmg
JAVA_HOME /home/maozuowei/software/jdk/jdk1.6/jdk1.6.0_45
CLASSPATH ${JAVA_HOME}/jre/lib/rt.jar;${JAVA_HOME}/bin;${JAVA_HOME}/lib/tools.jar
不足之处请各位指正,不懂可以留言。
经过一番挣扎终于成功讲Hotspot导入NetBeans中进行调试。
一.安装NetBeans(所谓工欲善其事,必先利其器 下载链接)
下载的时候有些注意点NetBeans的每个版本中按语言的支持程度分为好几种,这里我们需要的支持c/c++就可以了,理由很简单,因为Hotspot编译好以后是c++或者c文件。
不同版本,我指的是NetBeans8.2、8.1、8.0、7.4等版本对JDK版本是有要求的,所以最好下载一个最新版本的jdk(JDK不会装可以参考我上一篇博文),理由是在安装NetBeans的时候会要求你有jdk的支持,软件本身运行需要jdk支持。
安装的时候,由于是Linux版的,下载下来的是XXX.sh文件,ll一下看这个文件的权限发现不能执行,所以先在终端执行chmod +x XXX.sh赋予此文件执行的权限,然后./XXX.sh即可,卸载也是同理。还有疑问的可以点击这里
二.导入Hotspot
同样有些注意点看我选项
这里要选择定制
找到make目录下的Makefile文件,NetBeans是根据这个来构建项目的。
之后直接下一步下一步finsh即可
三.配置一些参数(重要)
项目右键->属性打开第一步配置make,选择构建命令一栏然后输入下面一段配置
${MAKE} -f Makefile clean jvmg
根据自己的JDK路径来配置注意这个路径和之前安装NetBeans时候的JDK可以不是同一个,这个JDK和你时候编译用哪个有关
ALT_BOOTDIR=/home/maozuowei/software/jdk/jdk1.6/jdk1.6.0_45
这个属性表示你的电脑是64位的
ARCH_DATA_MODEL=64
LANG=C
ZIP_DEBUGINFO_FILES=0
第二步配置运行(这个每个人的情况都可能不一样), 文件搜索命令:locate:快,这个是从var/lib/mlocate.db里找的,系统默认一天自动更新,用sudo updatedb可以强制更新。只能搜索文件名。在终端输入locate gamma,这个时候可能会出现很多路径,找到像这样的路径/home/maozuowei/software/openjdk/build-debug/hotspot/outputdir/linux_amd64_compiler2/jvmg/gamma 一般结尾都是这个样子的,目录各自都不同。然后将你搜到的路径复制一份,黏贴到运行命令栏目里。然后配置环境变量,配置JAVA_HOME、CLASSPATH、LD_LIBRARY_PATH
博主例子:
LD_LIBRARY_PATH /home/maozuowei/software/openjdk/build-debug/hotspot/outputdir/linux_amd64_compiler2/jvmg
JAVA_HOME /home/maozuowei/software/jdk/jdk1.6/jdk1.6.0_45
CLASSPATH ${JAVA_HOME}/jre/lib/rt.jar;${JAVA_HOME}/bin;${JAVA_HOME}/lib/tools.jar
四.点击运行,出现下图所示那么大功搞成
不足之处请各位指正,不懂可以留言。
相关文章推荐
- ubuntu下编译openjdk 并在eclipse调试hotspot
- VMware12 Pro下对虚拟机Ubuntu16.04系统所在分区sda1进行磁盘扩容
- [置顶] Linux下编译OpenJDK源码以及在Eclipse中调试Hotspot虚拟机
- JVM(一) OpenJDK1.8源码在Ubuntu16.04下的编译
- 虚拟机ubuntu 使用adb 编译调试系统app Settings.apk
- linux(ubuntu)系统下can调试工具canutils和iproute的编译应用
- Ubuntu16.04进行交叉编译MYSQL5.7.18的具体步骤
- Ubuntu 系统下进行C++程序的编辑 编译 运行
- 在ubuntu-16.04系统中安装arm-linux-gcc-4.3.2交叉编译工具
- Ubuntu16.04编译Android8.0系统源码
- Q115:Linux系统下CodeBlocks对PBRT-V3进行编译和调试
- 关于在ubuntu16.04 64位系统上安装交叉编译工具出现错误的解决方法
- 在Ubuntu 12.04 上编译调试 OpenJDK8
- Ubuntu16.04_ROS_kinetic下如何使用OpenCV2.4进行编译
- ubuntu编译并调试OpenJDK8源码实践
- Ubuntu16.04系统中BusyBox在配置arm交叉编译环境时make失败
- ubuntu 16.04 编译openjdk之坑
- ubuntu-16.04 64位系统搭建嵌入式交叉编译环境
- Ubuntu 16.04 编译Android 6.0系统源码
- NanoPi K2 (Amlogic S905) Ubuntu 16.04 编译Android 5.1系统源码