美文网首页
安装gdb调试hotspot

安装gdb调试hotspot

作者: flycash | 来源:发表于2018-12-02 16:37 被阅读67次

概述

在前一篇文章Mac上编译JDK里我记录了我编译openjdk的过程。这一篇(假如我坚持下来了)就是记录一下用gdb来debug JVM的过程,为将来深入学习JVM机制打下基础。

但是在上一篇里面,最终的make命令,使用的是make jdk,也就是编译了一个最小的发布使用的jdk,并不是我们期望的能够进行源码调试的jdk。所以在这之前,我们需要先编译一个可以源码调试的半本,在根目录下执行:

make test-image

等编译出来之后,跑到jdk目录下执行java --version确认一切都弄好了。

安装gdb

不幸的一件事是,在Mac上是没有gdb的,所以需要手动安装一个gdb,使用

brew install gdb

安装gdb,不过返回的信息是:


brew install gdb

输入gdb命令果然返回了command not found。看到上面写着

gdb requiers special privilleges to access Mach ports。

吓得我以为需要sudo权限,于是执行

sudo brew link gdb

结果又来了错误信息:


sudo brew link gdb

这个时候我注意原来安装不成功是因为证书问题,给gdb签一个证书就可以了。
首先command+space快捷键唤出Mac搜索,如图:


command + space

而后创建一个证书:


创建证书菜单
gdb-cert(这个名字后面用到)

有效期可以设置长一点,反正都是自己的电脑:


有效期设置
证书信息

我们只需要签名,所以选一个签名就可以:


只勾选签名
只勾选代码签名
什么都不选 采用默认设置

最后这里要选择系统:


选择系统

最后完成了


证书创建完成

而后找到刚才创建的证书,双击,将信任改为始终信任:


找到证书
信任证书

而后在终端输入:

sudo codesign -s gdb-cert /usr/local/Cellar/gdb/8.2/bin/gdb

后面的这个路径是怎么来的呢?其实就是刚才执行brew install gdb之后安装的位置,在执行brew link gdb输出的信息里面就能发现。

这个时候,我尝试再一次执行brew link gdb,还是收到了错误:


brew link gdb再次报错

我尝试执行了brew doctor:


brew doctor

嗯,有两个warning,所以按照它给出的建议,执行了一下命令:

sudo mkdir -p /usr/local/include /usr/local/sbin
sudo chown -R xxx(替换为用户名) /usr/local/include /usr/local/sbin

而后执行brew link gdb
这个时候执行

gdb --version
gdb输出版本信息

很好,现在已经搞好了。
如果之前找gdb的路径不太顺利,觉得可能找错了,这个时候你可以再执行一下:

sudo codesign -s gdb-cert /usr/local/bin/gdb

我这边输出是:


再次给gdb签名

说明我之前就已经执行成功了。

最后再执行

echo "set startup-with-shell off" >> ~/.gdbinit

大功告成。

这一句我也不知道有什么效果,反正就是我没执行的时候也顺利得很,不过看到之前提示了执行,我就执行以下,暂时没看出来什么效果。

开始debug

gdb启动hotspot

这个时候我们就已经成功使用gdb启动了hotspot。

相关文章

  • Xcode debug Hotspot(一)——创建Xcode项

    概述 前面安装gdb调试hotspot里面,我记录了自己安装gdb调试hotspot的过程。后来我发现,使用gdb...

  • 安装gdb调试hotspot

    概述 在前一篇文章Mac上编译JDK里我记录了我编译openjdk的过程。这一篇(假如我坚持下来了)就是记录一下用...

  • GDB调试环境配置

    GDB调试环境配置 GDB安装 在调试的时候,会提示如下信息 首先需要修改CentOS-Debuginfo.rep...

  • 调试监视器锁

    为了更深入地理解监视器锁,本文使用gdb调试Hotspot虚拟机展示监视器锁获取与释放的部分执行过程。 调试准备 ...

  • 2. gdb的使用

    参考链接1. GDB调试2. gdb调试方法3. gdb调试示例 1. 说说 gdb gdb 是一款 UNIX 系...

  • mac 安装gdb调试的方法

    因为mac下并没有自带的gdb调试工具。所在需要自己手动安装,在进行gdb安装前应首先配置好homebrew安装管...

  • Mac C语言编程

    gcc编译 gdb调试 gdb安装指南brew update报错急救步骤: 创建c文件Terminal中 用指令c...

  • macOS安装gdb

    今天在mac上想用gdb调试程序时,才发现macOS没有自带gdb, 需要自行安装。安装过程记录如下。主要参考ht...

  • MacOS Mojave(10.14)用gdb调试hotspot

    前言 如果想要了解如何在此版本下编译openjdk可以 参考前文。执行全量的build可以使用如下命令: 但是如果...

  • pwndbg,peda安装和切换

    环境:Ubuntu16.04 安装pwndgb 安装peda 切换gdb的调试工具pwndbg或peda: 把pw...

网友评论

      本文标题:安装gdb调试hotspot

      本文链接:https://www.haomeiwen.com/subject/dggjcqtx.html