Linux下在Eclipse中调试Hotspot虚拟机源码
来源:互联网 发布:mac os x.dmg原版镜像 编辑:程序博客网 时间:2024/06/05 04:42
使用已经编译好的OpenJDK来调试,如何编译OpenJDK源码,请参看 Linux下编译OpenJDK源码以及在Eclipse中调试Hotspot虚拟机 http://blog.csdn.net/leonliu06/article/details/78495035。
一、导入HotSpot源码到Eclipse
HotSpot是一个C++项目,其导入过程如下:
1. File –> import –> C/C++ –> Existing Code as Makefile Project下选择:/home/leon/OpenJDK7/jdk7u-dev/hotspot –> next
2. 填一个Project name, 如HotSpot。然后点击Browse将Hotspot路径填入Existing Code Location。下面的Toolchain for Indexer Settings选择Linux GCC。
3. 点击完成。
二、设置Debug Configuration
- 项目上右健Debug As –> Debug Configurations…打开Debug Configurations弹窗
- 弹窗中右健C/C++Application –> New –> 在右侧出来一个新的lauch configuration
- 在Main选项卡中C/C++ Application下选择启动类:/home/leon/OpenJDK7/jdk7u-dev/build/linux-amd64/hotspot/outputdir/linux_amd64_compiler2/jvmg/gamma,因为使用的是已经编译好的OpenJDK,这里不在Eclipse里编译,所以在下面选择Disable auto build
- Arguments选项卡中Program arguments输入-version 或者 要执行的类,gamma会从Eclipse中的CLASSPATH变量中找这个类,这里当前路径指项目根路径即/home/leon/OpenJDK7/jdk7u-dev/hotspot
Environment选项卡:配置环境变量如下
# gamma启动器读入java类的路径CLASSPATH=.:/home/leon# 这里使用自己编译好的JDK,如果使用别的JDK,会报错如下# JAVA_HOME must point to a valid JDK/JRE to run gamma# Error: could not find libjava.so# Error: could not find Java 2 Runtime Environment.JAVA_HOME=/home/leon/OpenJDK7/jdk7u-dev/build/linux-amd64/j2sdk-server-image# 通过LD_LIBRARY_PATH来设置libjava.so的位置,启动器优先加载编译好的libjava.so。hotspot jvm的代码都编译链接在libjava.so这个文件里。LD_LIBRARY_PATH=/home/leon/OpenJDK7/jdk7u-dev/build/linux-amd64/hotspot/outputdir/linux_amd64_compiler2/jvmg# GCC的环境变量,GCC会从这个路径下找包含的头文件CPLUS_INCLUDE_PATH=/home/leon/OpenJDK7/jdk7u-dev/jdk/src/share/bin
- Common选项卡: Displaying in favorites menu勾选Debug –> Apply
三、开始调试
点击Debug开始调试,代码将停在/home/leon/OpenJDK7/jdk7u-dev/hotspot/src/share/tools/launcher/java.c文件的main函数处。
阅读全文
0 0
- Linux下在Eclipse中调试Hotspot虚拟机源码
- Linux下编译OpenJDK源码以及在Eclipse中调试Hotspot虚拟机
- CentOS上编译OpenJDK8源码 以及 在eclipse上调试HotSpot虚拟机源码
- ubuntu下编译openjdk 并在eclipse调试hotspot
- ubuntu下使用QtCreator调试hotspot源码
- hotspot在eclipse上编译调试
- 编绎调试HotSpot JVM及在Eclipse里调试
- 编绎调试 HotSpot JVM 及在 Eclipse 里调试
- 在eclipse中调试jdk源码
- HotSpot虚拟机在Java堆中对对象的管理
- 在WIN7下虚拟机中安装配置linux调试环境全攻略
- Linux下用Eclipse编译、安装、运行、调试PostgreSQL源码
- 在虚拟机中利用KGDB调试Linux内核
- 在Eclipse中调试运行launcher源码之系列文章
- 在eclipse 中 导入OpenCms源码及其远程调试
- eclipse远程调试在linux下运行的程序
- linux在eclipse下编译并单步调试libevent
- windows下构建 HotSpot 虚拟机编译环境
- 2017119
- mybatis中select语句的模糊查询--${}与#{}
- linux指令 ssh 免密码登录服务器
- java 网络流 TCP Socket和SeverSocket 上传文本文件
- Win10正式版 Win10正式版无法访问局域网电脑
- Linux下在Eclipse中调试Hotspot虚拟机源码
- java三大框架(ssh)面试题整理
- 虚拟机CentOS6.7 快速安装redis
- Java中文字节长度
- k-近邻算法-机器学习实战例子说明
- CCF-训练50题-NO.1-数塔问题
- 设计模式学习---第十节:单例模式模式
- NOIP前 基础图论模板
- c++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast