在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

OpenJDK9 Hotspot Mac OSX 编译和调试

2016-8-29 13:17| 发布者: zhangjf| 查看: 857| 评论: 0

摘要: Intellij CLion CPU 占用率太高,还出各种奇怪问题,转投 Xcode 调试 hotspot 安装 hg# brew install hg 复制代码下载 open jdk 9 源代码# hg clone http://hg.openjdk.java.net/jdk9/dev复制代码漫长等待,中间无数 ...

Intellij CLion CPU 占用率太高,还出各种奇怪问题,转投 Xcode 调试 hotspot

安装 hg
  1. # brew install hg
复制代码
下载 open jdk 9 源代码
  1. # hg clone http://hg.openjdk.java.net/jdk9/dev
复制代码

漫长等待,中间无数次中断

安装 freetype
  1. # brew install freetype
复制代码
安装 libffi(可选)

如果要使用 zero 解释器,需要安装 libffi

  1. # brew install libffi
复制代码
configure
  1. # bash configure --with-debug-level=slowdebug --with-freetype=/usr/local/opt/freetype --disable-warnings-as-errors
复制代码

--with-debug-level 设置调试级别,设成 slow debug 可以提供更多的调试信息

--with-free-type 设置 free type 路径

--disable-warnings-as-errors 忽略警告

--with-jvm-features=zero 设置使用 c++ 实现的 zero 解释器,比基于模版的解释器更容易调试(如果汇编功力不够的话)

--with-jvm-variants=zero 配合 --with-jvm-features 使用

--with-libffi=/usr/local/opt/libffi 配合 --with-jvm-features 使用

--with-libffi-include=/usr/local/Cellar/libffi/3.0.13/lib/libffi/3.0.13/include

make
  1. # make
复制代码

构建成功后:
jdk -> build/macosx-x86_64-normal-server-slowdebug/jdk
hotspot -> build/macosx-x86_64-normal-server-slowdebug/hotspot

Xcode

在 Xcode 中新建 command line 工程,添加 hotspot 源代码到工程中
设定 运行目标为 jdk 源码目录下面 build/macosx-x86_64-normal-server-slowdebug/jdk/bin/java

在 jni.cpp 的 JNI_CreateJavaVM 方法中设置断点, goooooo

如果出现 sigsegv 信号中断,可以在 lldb 中设置

  1. (lldb) process handle SIGSEGV --stop=false
复制代码

上图

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-7-6 19:09

Copyright 2015-2025 djqfx

返回顶部