日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在Eclipse中进行HotSpot的源码调试--转

發布時間:2025/4/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Eclipse中进行HotSpot的源码调试--转 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://www.linuxidc.com/Linux/2015-05/117250.htm

在閱讀OpenJDK源碼的過程中,經常需要運行、調試程序來幫助理解。我們現在已經可以編譯出一個調試版本HotSpot虛擬機,禁用優化,并帶有符號信息,這樣就可以使用GDB來進行調試了。許多對虛擬機了解比較深的開發人員確實就是直接使用GDB加VIM編輯器來開發、修改HotSpot的,不過相信大部分讀者更傾向于在IDE環境而不是純文本的GDB下閱讀、跟蹤HotSpot源碼,在上篇文章中已經介紹過如何在CentOS 6.5上編譯OpenJDK7源碼,現繼續介紹如何在Linux下搭建基于eclipse的Hotspot源碼調試環境。

軟件環境

  • OS:CentOS?6.5

  • JDK Version:openjdk-7u6-fcs-src-b24-28_aug_2012

  • IDE:eclipse-cpp-kepler-SR2-linux-gtk-x86_64

下載eclipse,?地址: http://www.eclipse.org/cdt/downloads.php,注意eclipse 支持 C/C++的版本。

我下載的是eclipse-cpp-kepler-SR2-linux-gtk-x86_64.tar.gz

具體操作

Step 1:首先解壓JDK源碼包,啟動eclipse,依次選擇File?>?New?>?Makefile Project with Existing Code

接著出現下面的界面:

Step 2:定位到項目名右鍵?>?Properties?>C/C++ Build需要修改兩個地方:

  • 將Builder里口Use default build command的對勾去掉,填入參數ARCH_DATA_MODEL=64

  • 將Build location的Build directory追加上/make,最終是${workspace_loc:/hotspot}/make,目的是告訴make編譯器到該目錄下尋找編譯文件Makefile。

Step 3:選擇菜單欄Project?>?Build Project,看到已經開始build了,午休一下吧(首次build大概需要10-20m)。

部分LOG信息:

……

INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[1]: Entering directory `/home/jvm/opt/openjdk/hotspot/make'
make[1]: Nothing to be done for `generic_export'.
make[1]: Leaving directory `/home/jvm/opt/openjdk/hotspot/make'

02:01:39 Build Finished (took 23s.540ms)

Step 4:編譯成功之后就可以測試了,需配置如下幾步:

  • 點選菜單欄Run?>?Debug Configurations?>?New launch configuration,在C/C++ Application里填入/home/jvm/opt/openjdk/hotspot/build/linux/linux_amd64_compiler2/fastdebug/gamma

  • Project選擇當前項目。

  • 在Argument tab頁里Program arguments填入-version

  • 在Environment tab頁里Environment variables to set填入JAVA_HOME?|?/application/java/jdk

  • 在Common tab頁里勾選Debug

?配置完畢后,點擊Debug即可進入調試模式

由于HotSpot的源碼比較長,C/C++文件數量也很多,為了便于閱讀,代碼清單給出了各個目錄中代碼的主要用途,供參考。

代碼清單 HotSpot源碼結構
hotspot
├─agent? ? ? ? ? ? ? ? ? ? ? ? ? ? Serviceability Agent的實現
├─make? ? ? ? ? ? ? ? ? ? ? ? ? ? 用來build出HotSpot的各種配置文件
├─src? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HotSpot VM的源代碼
│? ├─cpu? ? ? ? ? ? ? ? ? ? ? ? ? ? CPU相關代碼
│? ├─os? ? ? ? ? ? ? ? ? ? ? ? ? ? 操作系相關代碼
│? ├─os_cpu? ? ? ? ? ? ? ? ? ? ? ? 操作系統+CPU組合的相關代碼
│? └─share? ? ? ? ? ? ? ? ? ? ? ? ? 平臺無關的共通代碼
│? ? ? ├─tools? ? ? ? ? ? ? ? ? ? ? ? 工具
│? ? ? │? ├─hsdis? ? ? ? ? ? ? ? ? ? ? 反匯編插件
│? ? ? │? ├─IdealGraphVisualizer? ? ? 將Server編譯器的中間代碼可視化的工具
│? ? ? │? ├─launcher? ? ? ? ? ? ? ? ? 啟動程序"java"
│? ? ? │? ├─LogCompilation? ? ? ? ? ? 將-XX:+LogCompilation輸出的日志(hotspot.log)整理成更容易閱讀的格式的工具
│? ? ? │? └─ProjectCreator? ? ? ? ? ? 生成Visual Studio的project文件的工具
│? ? ? └─vm? ? ? ? ? ? ? ? ? ? ? ? ? HotSpot VM的核心代碼
│? ? ? ? ? ├─adlc? ? ? ? ? ? ? ? ? ? ? 平臺描述文件(上面的cpu或os_cpu里的*.ad?文件)的編譯器
│? ? ? ? ? ├─asm? ? ? ? ? ? ? ? ? ? ? ? 匯編器接口
│? ? ? ? ? ├─c1? ? ? ? ? ? ? ? ? ? ? ? Client編譯器
│? ? ? ? ? ├─ci? ? ? ? ? ? ? ? ? ? ? ? 動態編譯器的公共服務/接口
│? ? ? ? ? ├─classfile? ? ? ? ? ? ? ? ? 類文件的處理(包括類加載和系統符號表等)
│? ? ? ? ? ├─code? ? ? ? ? ? ? ? ? ? ? 動態生成的代碼的管理
│? ? ? ? ? ├─compiler? ? ? ? ? ? ? ? ? 編譯器接口
│? ? ? ? ? ├─gc_implementation? ? ? ? ? GC的實現
│? ? ? ? ? │? ├─concurrentMarkSweep? ? ? Concurrent Mark Sweep GC的實現
│? ? ? ? ? │? ├─g1? ? ? ? ? ? ? ? ? ? ? Garbage-First GC的實現(不使用老的分代式GC框架)
│? ? ? ? ? │? ├─parallelScavenge? ? ? ? ParallelScavenge GC的實現(Server VM?默認,不使用老的分代式GC框架)
│? ? ? ? ? │? ├─parNew? ? ? ? ? ? ? ? ? ParNew GC的實現
│? ? ? ? ? │? └─shared? ? ? ? ? ? ? ? ? GC的共通實現
│? ? ? ? ? ├─gc_interface? ? ? ? ? ? ? GC的接口
│? ? ? ? ? ├─interpreter? ? ? ? ? ? ? ? 解釋器,包括"模板解釋器"(官方版在用)和?"C++解釋器"(官方版不再用)
│? ? ? ? ? ├─libadt? ? ? ? ? ? ? ? ? ? 一些抽象數據結構
│? ? ? ? ? ├─memory? ? ? ? ? ? ? ? ? ? 內存管理相關(老的分代式GC框架也在這里)
│? ? ? ? ? ├─oops? ? ? ? ? ? ? ? ? ? ? HotSpot VM的對象系統的實現
│? ? ? ? ? ├─opto? ? ? ? ? ? ? ? ? ? ? Server編譯器
│? ? ? ? ? ├─prims? ? ? ? ? ? ? ? ? ? ? HotSpot VM的對外接口,包括部分標準庫的native部分和JVMTI實現
│? ? ? ? ? ├─runtime? ? ? ? ? ? ? ? ? ? 運行時支持庫(包括線程管理、編譯器調度、鎖、反射等)
│? ? ? ? ? ├─services? ? ? ? ? ? ? ? ? 主要是用來支持JMX之類的管理功能的接口
│? ? ? ? ? ├─shark? ? ? ? ? ? ? ? ? ? ? 基于LLVM的JIT編譯器(官方版里沒有使用)
│? ? ? ? ? └─utilities? ? ? ? ? ? ? ? ? 一些基本的工具類
└─test? ? ? ? ? ? ? ? ? ? ? ? ? ? 單元測試

參考資料

《深入Java虛擬機》

深入Java虛擬機(原書第2版) PDF【中文版+附光盤源碼】? 下載地址:?http://www.linuxidc.com/Linux/2013-06/86222.htm

Ubuntu?14.04 LTS安裝Java 8和Eclipse 4.4??http://www.linuxidc.com/Linux/2014-11/109217.htm

Hadoop?Eclipse 插件編譯安裝1.2.0?http://www.linuxidc.com/Linux/2013-07/87428.htm

Hadoop在Eclipse中的插件編譯?http://www.linuxidc.com/Linux/2013-04/83295.htm

Hadoop 1.2.1編譯Eclipse插件?http://www.linuxidc.com/Linux/2013-10/91666.htm

Ubuntu 13.10安裝JDK、Eclipse for C/C++(解決全局菜單問題)?http://www.linuxidc.com/Linux/2013-11/92305.htm

如何在Ubuntu 14.04中安裝最新版Eclipse??http://www.linuxidc.com/Linux/2014-08/105090.htm

轉載于:https://www.cnblogs.com/davidwang456/p/5342301.html

總結

以上是生活随笔為你收集整理的在Eclipse中进行HotSpot的源码调试--转的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久久久爱 | 欧美视频免费看欧美视频 | 亚洲免费网站 | 日韩中文av | 国产精品99久久久久久久女警 | 欧美黄频 | 日日操日日干 | 日本一区二区三区在线观看视频 | 2021狠狠干 | 色射视频 | 91麻豆精品秘密入口 | 狠狠干,狠狠操 | 日韩欧美一区二区区 | 中文字幕高清在线观看 | 99成人精品 | 嫩草午夜少妇在线影视 | 亚欧洲精品视频在线观看 | 亚洲天堂免费在线观看视频 | xxxxx毛片 | 北岛玲一区二区 | 爱爱视频在线播放 | 亚洲人人人 | 亚洲精品久久久久久久久久久 | 国产精品无 | 国产超碰人人 | 日韩avwww| 黄色av电影网址 | 免费毛片播放 | 无码人妻一区二区三区免费n鬼沢 | 久久久久久综合 | 伊人青青草 | 操操网站 | 欧美专区在线观看 | 大伊人久久 | 善良的女邻居在线观看 | 欧美精品手机在线 | 中文字幕精品一区二区精 | 久久精品aⅴ无码中文字字幕重口 | 国产精品高潮呻吟AV无码 | 中文字幕人成乱码熟女香港 | 91精品在线播放 | 少妇久久久久久久久久 | 在线观看高清av | 美国三级视频 | 欧洲国产精品 | 欧美色影院 | 91丨九色丨蝌蚪丨老版 | 免费a级片视频 | 在线观看一区二区视频 | 日韩日韩 | 狠狠躁夜夜躁av无码中文幕 | 一本一道波多野结衣一区二区 | 日韩裸体视频 | 国产无遮挡又黄又爽免费视频 | 天天爽天天爽天天爽 | 妞干网精品 | 成人爱爱 | 午夜精品少妇 | 国产一区二区在线视频观看 | 秋霞一级全黄大片 | xx色综合 | 羞羞动漫在线观看 | 黄色69视频 | 亚洲精品美女视频 | 欧美经典一区二区三区 | 麻豆精品在线播放 | 国产又爽又猛又粗的视频a片 | 艳妇乳肉亭妇荡乳av | 加勒比在线一区 | 五月婷婷六月激情 | 国产精品一级无码 | 久操视频免费观看 | 亚洲欧美一区二区三区情侣bbw | 久久久久久国产精品一区 | 日本无遮挡边做边爱边摸 | 欧美成人aa | 国产精品久久久久三级无码 | 久久av红桃一区二区小说 | 久久免费视频一区 | 蜜臀少妇久久久久久久高潮 | 成人免费毛片高清视频 | 激情亚洲视频 | 中文字幕狠狠 | 中文人妻熟妇乱又伦精品 | 色婷婷av一区二区三区大白胸 | 第一宅男av导航入口 | 欧美成人一区在线 | 国产内射一区二区 | 夜夜爽夜夜操 | 人妻巨大乳一二三区 | 无码无套少妇毛多18pxxxx | 特级丰满少妇一级aaa爱毛片 | 免费在线看污 | 精品一区李梓熙捆绑 | 国产污污视频 | 免费在线激情视频 | 国产日韩欧美 | 一区二区欧美视频 | 亚洲精品小视频在线观看 |