HotSpot源碼構建調試

HotSpot源碼閱讀和解析

從零開始閱讀HotSpot源碼

一幽歼、獲取并構建HotSpot 源碼

HotSpot 源碼下載地址:

https://github.com/openjdk/jdk/tree/jdk8-b120

一、準備環(huán)境

1.1谬盐、服務器資源

操作系統(tǒng):Centos 8.5 x64

操作軟件:CLion(JetBrains的產品)

# cat /proc/version
Linux version 3.10.0-1160.59.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Wed Feb 23 16:47:03 UTC 2022

# uname -a
Linux localhost.localdomain 3.10.0-1160.59.1.el7.x86_64 #1 SMP Wed Feb 23 16:47:03 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

二甸私、下載源碼(OpenJDK8)

1.安裝hg 服務

yum install mercurial -y

2.使用hg 下載openjkd到 opt 目錄

cd /opt 

3.更新代碼,操作和Git類似

cd /opt/jdk8u
hg pull

4.獲取完整源碼(下載時間較長)

sh get_source.sh

三飞傀、編譯源碼

1.將jdk-7u80-linux-x64.tar.gz文件上傳到linux

使用Xftp 7 或者 rz 命令上傳文件工具即可:
上傳到linux下的:/opt/tools/目錄下

2.解壓jdk7到/opt 目錄下

cd /opt/tools
tar -zxf jdk-7u80-linux-x64.tar.gz -C /opt

3.配置

cd /opt/jdk8u
chmod -x configure

4.安裝編譯所需要的工具包

yum install -y unzip zip libXtst-devel libXt-devel libXrender-devel cups-devel freetype-devel alsa-lib-devel fontconfig-devel
yum group info 'Development Tools'
yum groupinstall -y “Development Tools”

5.配置編譯環(huán)境

./configure --with-target-bits=64 --with-boot-jdk=/opt/jdk1.7.0_80/ --with-debug-level=slowdebug --with-native-debug-symbols=internal

配置說明:
–with-target-bits=64 :指定?成64位jdk弃鸦;
–with-boot-jdk=/opt/jdk1.7.0_80/:jdk7的路徑;
–with-debug-level=slowdebug:編譯時debug的級別幢痘,有release, fastdebug, slowdebug 三種級別唬格;

6.編譯(編譯時間較長、耐心等待)

make all

7.測試

./build/linux-x86_64-normal-server-slowdebug/jdk/bin/java -version
openjdk version "1.8.0-internal-debug"
OpenJDK Runtime Environment (build 1.8.0-internal-debug-root_2022_06_14_21_00-b00)
OpenJDK 64-Bit Server VM (build 25.71-b00-debug, mixed mode)

8.復制拷貝一份

zip jdk8u.zip jdk8u -r

四颜说、Windows 遠程調試

1.linux環(huán)境準備

yum install cmake -y
yum install gcc-c++ -y
yum install gdb -y
yum install gdb-gdbserver -y

2.Windows環(huán)境準備

1.首先用Clion新建一個空項目
image.png
2.設置遠程調試
image.png
image.png
image.png
3.同步代碼(windows上的代碼需要和CentOS上的代碼一樣)連接信息
image.png
4.對應目錄购岗,本地目錄為新建的OpenJDK8項目目錄
image.png
5.同步時要排除本地目錄
image.png
6.下載遠程代碼(下載之后linux上的代碼,可能會丟失某些文件门粪,所以先把linxu的源碼備份一次)
image.png

image.png

image.png
7.設置遠程調試喊积,地址為CentOs地址,端口隨意
image.png

image.png
8.Linux環(huán)境準備
將jdk8u還原
unzip jdk8u.zip
linux啟動GDB玄妈,端口與之前的對應(1234)
gdbserver :1234 /opt/jdk8u/build/linux-x86_64-normal-server-slowdebug/jdk/bin/java -version
image.png
linux啟動1234端口(防火墻)
vi /etc/sysconfig/iptables
略
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1234 -j ACCEPT
重啟防?墻
service iptables restart
4.打上斷點乾吻,啟動的Debug(比較慢,載入libjvm.debuginfo的時候)
image.png

image.png
結束
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末拟蜻,一起剝皮案震驚了整個濱河市绎签,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瞭郑,老刑警劉巖辜御,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸭你,死亡現(xiàn)場離奇詭異屈张,居然都是意外死亡,警方通過查閱死者的電腦和手機袱巨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門阁谆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人愉老,你說我怎么就攤上這事场绿。” “怎么了嫉入?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵焰盗,是天一觀的道長璧尸。 經常有香客問我,道長熬拒,這世上最難降的妖魔是什么爷光? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮澎粟,結果婚禮上蛀序,老公的妹妹穿的比我還像新娘。我一直安慰自己活烙,他們只是感情好徐裸,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著啸盏,像睡著了一般重贺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上回懦,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天檬姥,我揣著相機與錄音,去河邊找鬼粉怕。 笑死健民,一個胖子當著我的面吹牛,可吹牛的內容都是我干的贫贝。 我是一名探鬼主播秉犹,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼稚晚!你這毒婦竟也來了崇堵?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤客燕,失蹤者是張志新(化名)和其女友劉穎鸳劳,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體也搓,經...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡赏廓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了傍妒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幔摸。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖颤练,靈堂內的尸體忽然破棺而出既忆,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布患雇,位于F島的核電站跃脊,受9級特大地震影響,放射性物質發(fā)生泄漏苛吱。R本人自食惡果不足惜匾乓,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望又谋。 院中可真熱鬧拼缝,春花似錦、人聲如沸彰亥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽任斋。三九已至继阻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間废酷,已是汗流浹背瘟檩。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留澈蟆,地道東北人墨辛。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像趴俘,于是被迫代替她去往敵國和親睹簇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內容