转载:Debugging OpenJDK 8 with NetBeans on Ubuntu

原文地址:https://marcin-chwedczuk.github.io/debugging-openjdk8-with-netbeans-on-ubuntu

概述如下:

1 当然是下载openjdk。我这里选的是jdk8u,这是目前公司使用的主流版本,另外jdk9和jdk10目录结构相较与传统的目录结构有不小变更,从已有的资料上找相关的代码会增加难度。两种下载方式:

  1)hg clone https://hg.openjdk.java.net/jdk8u/jdk8u/ . (注意后面这个代码当前目录的句点),这步完成之后还要执行下载下来的get_source.sh脚本。

  2)使用git或其它方式从https://github.com/dmlloyd/openjdk下载完整的源代码。

       3) 将hotspot/make/linux/makefiles/gcc.make中的WARNINGS_ARE_ERRORS = -Werror 此行注释掉,否则编译过程要被报错中断。

2 下载编译源码所要使用的依赖。

  sudo apt install   libx11-dev   libxext-dev   libxrender-dev    libxtst-dev   libxt-dev     libcups2-dev     libfreetype6-dev      libasound2-dev

(另外提一句,如果有哪位同学跟我一样使用的opensuse系统,最后那个libasound2-dev包是找不着的:可以安装alsa-devel这个包替代,libcups2-dev用cups-devel代替

3 构建makefile
$ cd openjdk-jdk8u/

$ chmod +x ./configure
$ ./configure --with-debug-level=slowdebug --with-target-bits=64 --with-native-debug-symbols=internal 
 


4编译
make
5 运行我们的java程序
  0)准备一个HelloWorld.class文件
  1) $ ./build/linux-x86_64-normal-server-slowdebug/jdk/bin/java   -cp "/home/me/dev/java/helloWorld/"   HelloWorld (第一个参数是你上步编译出的java可执行程序,第二个参数是classpath,这里指向你放class文件的目录,第三个是含有main方法的类名。

     Hello, world!(这是输出)

6 用netbeans运行和调试我们的openjdk。如果要这样做,则3,4,5步皆可省略。
  1)从官网下载netbeans,要求支持C++。
  2)新建C++工程,并从已有源码导入。
  3)配置并运行configure脚本。
  4)配置完成后项目自动运行make。
  5)构建完成后指定可执行的java程序如5.1。
  6)在源码中设断点并点击debug按钮(如有信号中断弹出框,则选择“不再补获该信号”和”继续前进“。
  这几个步骤说的比较简略,是因为引文作者已十分细心的给出了截图。故不再赘言。
7 加断点的位置。
  参考https://www.cnblogs.com/bhlsheji/p/4017816.html这篇博文。
 
 
posted @ 2018-04-04 23:59  lancepro  阅读(305)  评论(0编辑  收藏  举报