原创

调试HotSpot源代码

1、GDB调试源代码

在Linux上常用GDB调试C/C++源代码。使用GDB运行如上实例生成的Class文件,具体命令如下:

gdb --args ./build/linux-x86_64-normal-server-slowdebug/jdk/bin/java Test

进入GDB后,输入如下命令:

break java.c:JavaMain
continue

第一条命令表示在源文件java.c的JavaMain函数入口处设置断点;第二条命令表示让中断的程序继续运行,直到运行完程序后退出GDB,并在终端打印”Hello World!“信息。
下面介绍一些常用的GDB命令,如下表所示。

2、在Eclipse中进行源代码调试

1.下载安装Eclipse并安装C/C++插件
https://www.eclipse.org/downloads 网站上下载支持Ubuntu 64位版本操作系统的Eclipse,笔者下载的压缩包名称为eclipse-java-neon-3-linux-gtk-x86_64.tar.gz,通过如下命令解压后得到eclipse目录。命令如下:​

tar -zxvf eclipse-java-neon-3-linux-gtk-x86_64.tar.gz

切换到eclipse目录后,运行如下命令启动Eclipse。命令如下:

./eclipse &

启动Eclipse后,单击help菜单项,选择Eclipse Marketplace选项后,弹出Eclipse Marketplace对话框,搜索"c++"找到Eclipse C++ IDE..安装。安装完成后就可以创建及导入C/C++项目到Eclipse中了。

2.导入HotSpot源代码
单击help菜单项,选择new->Other...后,在弹出的New对话框中选择Makefile Project with Existing Code,然后单击“Next”,添写相关的信息,如下图所示。​

设置完成后单击“Finish”即可。

3.配置及调试源代码
在HotSpot项目上右击,选择Debug As -> Debug Configurations...,在弹出的Debug Configurations对话框中,选择C/C++ Application后,右击,在弹出的菜单中选择New Configuration后,在右侧的Main选项卡中配置相关的信息,如下图所示。

切换到Arguments选项卡, 在Program arguments文本框中输入虚拟机运行时的参数,这里运行之前的实例,具体参数如下:

com.test/Test

切换到Environment选项卡, 添加变量:​

JAVA_HOME=/home/mazhi/workspace/openjdk/build/linux-x86_64-normal-server-slowdebug/jdk/
CLASSPATH=.:/home/mazhi/workspace/project/bin

CLASSPATH指定Test.class文件所在的目录。
设置完相关信息后,单击Apply进行保存。

正文到此结束