openjdk 初步调试

来源:互联网 发布:企查查数据接口 编辑:程序博客网 时间:2024/06/06 04:20

接上一篇openjdk编译成功后,我搭建了相应的调试环境。

调试参考《深入理解java虚拟机-jvm高级特性与最佳实践》- 周志明

调试环境是Netbeans,版本要注意!!

我之前下载了8.0.2发现断点不能设置在java.c,后来改用了7.0版本就好了,费了不少时间,此处要留意~


gdb不是mac自带的,如果还没安装可用brew来安装,命令如下:


brew install https://raw.github.com/Homebrew/homebrew-dupes/master/gdb.rb


如果brew也没有的话,再敲如下命令安装:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装完gdb之后,如果发现gdb有提示代码证书之类签名错误,参考一下地址:

http://blog.csdn.net/powerlly/article/details/30323015

基于Makefile构建起来的netbeans工程,以下有几个地方需要设置的:

# 构建命令
${MAKE} -f Makefile clean jvmg ALT_BOOTDIR=/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home ARCH_DATA_MODEL=64 LANG=C COMPILER_WARNINGS_FATAL=false#环境变量JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/HomeCLASSPATH .:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/jre/lib/i18n.jarLD_LIBRARY_PATH /Users/huic/Desktop/javachen/openjdk/hotspot/build/bsd/bsd_amd64_compiler2/jvmg:${JAVA_HOME}/jre/lib

ok之后开始调试,一下3张截图是我认为在调试中比较重要的运行线路,接下来将围绕某个.class文件从被load进vm到被执行的完整流程。
在这里,先记录下一个简要的代码目录关系:

hotspot/src/share/vm/下面重要的基本依赖,这是我的基本印象,没有论证,先记着~

classfile - code - / compiler -   ci   /  c1
                           \ interpreter        \  opto







0 0