国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - OpenJDK源碼調試圖文教程

OpenJDK源碼調試圖文教程

2021-09-04 16:02Lucky Monkey Java教程

這篇文章主要介紹了OpenJDK源碼調試,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言

     隨著Java生態愈發龐大,各種各樣的新技術層出不窮,這也給大家的學習帶來了很多困惑,這么多技術我該學什么,盲目的在各種新技術間穿梭,并不能取得很好的效果。
     作為Java核心技術的JDK相信很多同學都看過源碼,了解過Java的內存模型,但是很多時候debug到最后都是 native,這是讓人很沮喪的事情,于是乎了解JDK底層的實現變得極為重要。
    編譯OpenJDK源碼的文章很多,但是很少有從頭到尾搭建環境的文章,于是我這里就寫了這篇文章,這里涉及的主要步驟:

虛擬機的安裝

  • 虛擬機的安裝
  • Ubuntu系統鏡像安裝
  • Ubuntu系統設置
  • OpenJDK編譯
  • Idea在Linux下的安裝
  • netbeans在Linux下的安裝
  • HotSpot源碼調試

WMware虛擬機安裝

WMware的版本有很多我們這里使用的版本是15.5.1的版本。
下載鏈接
鏈接: https://pan.baidu.com/s/1IABotf1mFjFMZqXE8yZ1BA 提取碼: atzw

下載軟件后,放到指定目錄下,雙擊打開,點擊下一步,如下圖所示:

OpenJDK源碼調試圖文教程

勾選我接受的復選框,點擊下一步,如下圖所示:

OpenJDK源碼調試圖文教程

選擇待安裝vm的磁盤位置,可以自定義,選擇磁盤位置后,點擊下一步,如下圖所示:

OpenJDK源碼調試圖文教程

去勾選更新和加入體驗的復選框,點擊下一步,如下圖所示:

OpenJDK源碼調試圖文教程

點擊下一步后彈出安裝進度,等待安裝結束,如下圖所示:

OpenJDK源碼調試圖文教程

到此為止我們就安裝成功了,在桌面上找到圖標打開即可以使用了,如下圖所示:

OpenJDK源碼調試圖文教程

Ubuntu系統鏡像安裝

這里用來安裝虛擬的Ubuntu的版本是16.04.6這個版本
下載鏈接
鏈接: https://pan.baidu.com/s/1X82lDWqBO7HcBD_likFtPQ 提取碼: i4y4

打開VMware虛擬機軟件,如下圖所示:

OpenJDK源碼調試圖文教程

選擇新建虛擬機,如下圖所示:

OpenJDK源碼調試圖文教程

創建虛擬機,選擇典型,然后下一步,如下圖所示:

OpenJDK源碼調試圖文教程

選擇已下載的ubuntu-16.04.6-desktop-amd64.iso鏡像,然后點擊下一步,如下圖所示:

OpenJDK源碼調試圖文教程

填寫創建Ubuntu虛擬機所需要的的基本信息,然后點擊下一步,如下圖所示:

OpenJDK源碼調試圖文教程

填寫虛擬機名稱和安裝位置,這里建議在較大的盤中創建一個單獨的目錄進行存儲,然后點擊下一步,如下圖所示:

OpenJDK源碼調試圖文教程

指定磁盤大小和磁盤文件存儲形態,如果只是用來進行簡單的調試代碼默認的20G足夠了,如果后面不夠可以在虛擬機設置中對其進行調整,這里我們就設置默認的20G,磁盤存儲有兩種形式單文件和多文件,多文件格式對于備份異常恢復更好,這里我們選擇多文件存儲,然后點擊下一步,如下圖所示:

OpenJDK源碼調試圖文教程

由于后面在編譯OpenJDK時對內存要求較高,這里在自定義硬件中我們將內存調整到4G,然后點擊完成,如下圖所示:

OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程

等待Ubuntu安裝成功,這個過程大概需要十幾分鐘,如下圖所示:

OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程

Ubuntu系統設置

網絡設置

輸入密碼,登錄操作系統,如下圖所示:

OpenJDK源碼調試圖文教程

Ubuntu網絡設置,使用快捷鍵(Ctrl+Alt+T)打開命令行窗口,輸入ifconfig,查看當前網絡配置,如下圖所示:

OpenJDK源碼調試圖文教程

輸入route -n,查看網關配置,如下圖所示:

OpenJDK源碼調試圖文教程

查看當前Windows系統的DNS配置,作者使用的是Windows10,如下圖所示:

OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程

設置Ubuntu的網絡配置,如下圖所示:

OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程

測試使用Ubuntu自帶的火狐瀏覽器是否可以正常訪問百度,如下圖所示:

OpenJDK源碼調試圖文教程

共享文件夾設置

虛擬機Ubuntu和Windows進行文件共享,很多資料使用的都是虛擬機自帶的工具VMware Tools,但是很多時候操作過程中會出現很多意想不到的問題造成安裝失敗,浪費很多時間,這里介紹一種更簡單的方式,通過網絡共享實現虛擬機文件共享。
方法如下:

在Downloads目錄下創建一個share文件夾,效果如圖所示:

OpenJDK源碼調試圖文教程

在share文件夾上右鍵,選擇本地網絡共享,效果如圖所示:

OpenJDK源碼調試圖文教程

按下圖勾選選項,然后點擊創建共享按鈕,效果如圖所示:

OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程

在windows系統中通過網絡找到share共享目錄,效果如圖所示:

OpenJDK源碼調試圖文教程

OpenJDK編譯

在編譯OpenJDK過程中,需要用到的軟件如下:

jdk-7u80-linux-x64.tar
下載地址:

鏈接: https://pan.baidu.com/s/1LNd2Xkg93bsXDuEVFdjfQQ 提取碼: j3ix

openjdk-8u40-src-b25-10_feb_2015.zip

下載地址:
鏈接: https://pan.baidu.com/s/1eFVhrgmXOZ_oD8uQ_YEiUg 提取碼: kqkh

編譯流程

將需要的安裝包放到虛擬機share共享目錄,如下圖所示:

OpenJDK源碼調試圖文教程

在Ubuntu虛擬機中解壓安裝包到Documents目錄,如下圖所示:

OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程

安裝依賴包(按照提示進行操作),大概需要2分鐘

  1. sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev
  2. sudo apt-get install libcups2-dev
  3. sudo apt-get install libfreetype6-dev
  4. sudo apt-get install libasound2-dev

安裝vim

  1. sudo apt-get install vim

配置path

  1. vim ~/.bashrc

在bashrc文件的末尾添加下面代碼,其中jdk1.7.0_80路徑根據實際情況填寫

  1. export JAVA_HOME=/home/feng/Documents/jdk1.7.0_80
  2. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  3. export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH

驗證是否配置成功

  1. source ~/.bashrc
  2. java -version

OpenJDK源碼調試圖文教程

執行命令編譯OpenJDK8,boot jdk按照實際目錄填寫

  1. cd /home/feng/Documents/openjdk/
  2. sudo bash configure --with-target-bits=64 --with-boot-jdk=/home/feng/Documents/jdk1.7.0_80/ --with-debug-level=slowdebug --enable-debug-symbols ZIP_DEBUGINFO_FILES=0

如果配置成功會顯示如下信息:

OpenJDK源碼調試圖文教程

執行下面的命令,開始編譯,這個時間較長

  1. sudo make all DISABLE_HOTSPOT_OS_VERSION_CHECK=OK ZIP_DEBUGINFO_FILES=0

看到下面的畫面,證明編譯成功

OpenJDK源碼調試圖文教程

Ubuntu下安裝Idea

我們這里使用的Idea2021.1的社區版。
下載鏈接
鏈接: https://pan.baidu.com/s/1w8eqjpWHn6J0DYX9TAwQmQ 提取碼: ygci

將下載的idea,放到share共享目錄下,并在虛擬機中解壓到Documents目錄,截圖如下:

OpenJDK源碼調試圖文教程

在當前用戶目錄下創建Makefile文件

  1. cd ~
  2. vim Makefile

在文件中添加以下代碼:

  1. idea:
  2. sh /home/feng/Documents/idea-IC-211.6693.111/bin/idea.sh

通過make命令啟動idea

  1. make idea

啟動后,點擊繼續,截圖如下:

OpenJDK源碼調試圖文教程

選擇不發送,截圖如下:

OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程

Ubuntu下安裝NetBeans

我們這里使用的NetBeans8.2的版本。
下載鏈接
鏈接: https://pan.baidu.com/s/1k40ZgtSx87rUvLaabazeDA 提取碼: 34u9

將下載的NetBeans,放到share共享目錄下,并在虛擬機中復制到桌面,截圖如下:

OpenJDK源碼調試圖文教程

執行以下命令,安裝NetBeans

  1. cd /home/feng/Desktop/
  2. sudo chown feng:feng jdk-8u111-nb-8_2-linux-x64.sh
  3. ./jdk-8u111-nb-8_2-linux-x64.sh

點擊下一步,安裝NetBeans,如下圖所示:

OpenJDK源碼調試圖文教程

設置默認jdk,點擊下一步,如下圖所示:

OpenJDK源碼調試圖文教程

選擇初始化目錄,點擊下一步,如下圖所示:

OpenJDK源碼調試圖文教程

去勾選檢查更新,點擊安裝,如下圖所示:

OpenJDK源碼調試圖文教程

去勾選,點擊完成,如下圖所示:

OpenJDK源碼調試圖文教程

點擊桌面的NetBeans ISE 8,2啟動,如下圖所示

OpenJDK源碼調試圖文教程

安裝C/C++插件,如下圖所示

OpenJDK源碼調試圖文教程

選擇可用插件,找到C/C++選中,點擊安裝,如下圖所示

OpenJDK源碼調試圖文教程

點擊下一步,安裝C/C++插件,如下圖所示

OpenJDK源碼調試圖文教程

勾選同意,點擊安裝,如下圖所示

OpenJDK源碼調試圖文教程

HotSpot源碼調試

執行下面命令,修改javahome,使用編譯好的OpenJDK作為默認JDK

  1. vim ~/.bashrc

修改bashrc文件,修改后效果如下圖:

  1. export JAVA_HOME=/home/feng/Documents/openjdk/build/linux-x86_64-normal-server-slowdebug/jdk

OpenJDK源碼調試圖文教程

執行java -version命令,檢查是否修改成功,如果成功,效果如下

  1. source ~/.bashrc
  2. java -version

OpenJDK源碼調試圖文教程

使用NetBeans創建OpenJDK工程,步驟如下:

OpenJDK源碼調試圖文教程

基于現有的C/C++代碼創建工程,選擇如下圖,點擊下一步

OpenJDK源碼調試圖文教程

選擇編譯后的OpenJDK的目錄,選擇定制,選擇如下圖,點擊下一步

OpenJDK源碼調試圖文教程

按照默認配置,點擊下一步,最終點擊完成

OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程

使用Idea,創建一個工程,編寫一個測下代碼,工程結構,如下圖

  1. package com.feng;
  2.  
  3. public class Test {
  4. public static void main(String[] args) {
  5. String str = "test";
  6. System.out.println(str);
  7. }
  8. }

OpenJDK源碼調試圖文教程

運行代碼進行編譯,將class文件生存到class目錄下,如下圖

OpenJDK源碼調試圖文教程

NetBeans中配置Test活動,步驟如下:

OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程
OpenJDK源碼調試圖文教程

編輯Run Command,使用如下參數,效果如圖:

  1. "${OUTPUT_PATH}" -cp "/home/feng/IdeaProjects/Test/target/classes" com.feng.Test

OpenJDK源碼調試圖文教程

點擊應用,然后點擊確認,效果如圖:

OpenJDK源碼調試圖文教程

切換到Test,點擊運行,這個時候會彈出選擇可執行的命令,這里需要選擇編譯后的OpenJDK中的java命令,效果如圖:

OpenJDK源碼調試圖文教程

啟動成功后,會打印出來我們在idea中編寫的Test代碼的執行結果,如下圖所示:

OpenJDK源碼調試圖文教程

這個時候我們就可以在OpenJDK中添加斷點,對OpenJDK進行調試了,在openjdk->jdk->src->share->bin->java.c文件中JavaMain方法處添加斷點進行調試,如下圖所示:

OpenJDK源碼調試圖文教程

到這里整個OpenJDK源碼調試的過程就結束了,大家如果有什么問題,可以給我留言,大家共同交流進步。

到此這篇關于OpenJDK源碼調試的文章就介紹到這了,更多相關OpenJDK源碼調試內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_41452004/article/details/115608385

延伸 · 閱讀

精彩推薦
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7472021-02-04
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
主站蜘蛛池模板: 欧美狠狠操 | 亚洲激情都市 | 91久色 | 欧美日韩一区二区在线 | www.久久久久久久 | 91亚洲国产成人久久精品网站 | 国产成人免费视频网站高清观看视频 | 国产午夜久久 | 精品久久久久久国产 | 欧美视频在线免费 | 久久精品亚洲精品国产欧美kt∨ | 特黄特色大片在线观看视频网站 | 久久久国产日韩 | 中文字幕一区二区三 | 日韩一区二区三区在线视频 | 综合色区| 成人国产精品视频 | 九九av| 精品国产一区二区三区性色av | 在线中文字幕视频 | 成人3d动漫一区二区三区91 | 欧美色图亚洲 | 亚洲大片av | 91精品国产人妻国产毛片在线 | 天天澡天天狠天天天做 | 91亚洲国产成人久久精品网站 | 一级爱| 亚洲视频欧美视频 | 99国产视频| 国产精品久久久久一区二区三区 | 国产精品无码久久久久 | 97成人在线| 日韩欧美精品在线 | 人人99| 日韩免费一区 | 性做久久久久久久久 | 国产精品免费精品自在线观看 | 精品国产一区二区在线 | 国产综合人综合 | av大片网 | 黑人巨大精品欧美黑白配亚洲 |