openjdk编译和调试

1、环境:ubuntu12.04+gcc 4.6.3

目前还没有在mac上编译成功过

2、下载openjdk

http://openjdk.java.net

3、安装JDK7所需要的依赖包

sudo apt-get build-dep openjdk-7  

4、编译脚本,会在openjdk的build目录下生成三个版本的java程序

#!/bin/sh
#!/bin/bash

export LANG=C
export ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk-i386/	
export ALLOW_DOWNLOADS=true	#是否需要自动下载,jaxp,jaws可以自动下载
export SKIP_DEBUG_BUILD=false	#是否跳过编译debug版
export SKIP_FASTDEBUG_BUILD=false	#是否跳过编译fastdebug版
export DEBUG_NAME=debug
unset CLASSPATH
unset JAVA_HOME

make sanity && make all_debug


5、使用生成的debug版本进行调试,由于在运行过程中,需要使用dlopen动态加载libjvm.so,这个libjvm.so中缺少调试信息,所以无法跟进动态链接库中的符号,解决方案是生成libjvm的调试信息,方法如下

cd hotspot/make

export LANG=C
export ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk-i386/	
export ALLOW_DOWNLOADS=true	#是否需要自动下载,jaxp,jaws可以自动下载
export SKIP_DEBUG_BUILD=false	#是否跳过编译debug版
export SKIP_FASTDEBUG_BUILD=false	#是否跳过编译fastdebug版
export DEBUG_NAME=debug
unset CLASSPATH
unset JAVA_HOME
make all_debug

这种方法将会在 hotspot/build目录下生成linux/linux_i486_compiler2/jvmg,进行调试的时候,只需要使用./hotspot -gdb


6、如果在编译中有任何问题,可详细参考

http://blog.csdn.net/hengyunabc/article/details/16912775

http://blog.csdn.net/unei66/article/details/26481191




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值