[Inside HotSpot] Xcode编译调试OpenJDK12
2024-09-01 12:00:49
编译
下载brew然后安装hg,freetype,ccache
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew install ccache
$ brew install freetype
$ brew install hg
$ hg clone http://hg.openjdk.java.net/jdk/jdk12 openjdk12
$ cd openjdk12
$ chmod +x configure
$ ./configure --enable-ccache --witt-debug-level=server-fastdebug
$ make all #or make hotspot
一切完成后openjdk12/build/macos-x86_64-server-fastdebug
就是编译产出。
xcode调试
打开xcode创建一个项目,然后选择macOS,创建一个命令行项目:
然后选中新项目自动创建的文件右键删除
接着配置启动项。对着停止那个方块按钮旁边的按钮右键Edit Scheme
在运行里面选择basic configuration,选择other
这里选择之前编译出来的jvm,比如我的目录是/Users/kelthuyang/Desktop/openjdk12/build/macosx-x86_64-server-fastdebug/jdk/bin
然后选择Argument给虚拟机加个启动参数,这里随便写个java hello world,然后javac编译得到字节码文件,-cp
指定字节码所在目录,后面加上类名
然后选中工程add files to project将hotspot源代码倒入到项目
到这里已经可以运行了,直接运行会出现sigsegv信号,这是正常情况,但是会阻碍调试。可以在lldb中使用process handle SIGSEGV -s false
不过每次运行都需要输入比较麻烦,可以设置符号断点忽略sigsegv信号。选择左边创建那个箭头,然后最下面加号选择symbolic breakpoint
随便加一个,比如我加的是Threads::create_vm
模块忽略sigsegv
再次运行,一切顺利!
最新文章
- .net发邮件【转】
- 前端神器 Firebug 2.0 新特性一览
- FreePascal经典资料
- 用React.addons.TestUtils、Jasmine进行单元测试
- 李洪强漫谈iOS开发[C语言-031]-逻辑短路
- 转:前端冷知识(~~some fun , some useful)
- Android应用开发-小巫CSDN博客clientJsoup篇
- android 原生应用、Web应用、混合应用优缺点分析
- 前端基础-CSS的各种选择器的特点以及CSS的三大特性
- Jenkins+PowerShell持续集成环境搭建(六)参数化构建
- eclipse没有server选项
- oracle坏块问题的处理
- A* 寻路学习
- mysql cmd 启动服务
- 通过sqli-labs学习sql注入——基础挑战之less1-3
- 自定义的开关按钮——SwitchButton
- 创建新的Cocos2dx 3.0项目并解决一些编译问题
- 如何利用mixin编写media query的代码
- 实现atoi函数
- ant-design-pro使用服务器数据接口代理配置