解決調(diào)試JDK源碼時(shí),不能查看變量的值問題
前幾天本來想以debug模式看一下JDK的源碼,進(jìn)入調(diào)試模式時(shí)才發(fā)現(xiàn),根本看不到方法里面變量值的情況。為什么呢?JDK現(xiàn)在的版本中,編譯過后,去除了里面的調(diào)試信息。解決辦法是,編譯那些類,使其帶有調(diào)試信息,使用命令:javac -g
查看了一些相關(guān)資料,現(xiàn)將解決方法放到下面
1、在d:\的根目錄下創(chuàng)建jdk7_src和jdk_debug目錄。
2、在JDK_HOME目錄下找到src.zip文件,并把它里面的文件解壓到j(luò)dk7_src目錄下,然后在解壓后的目錄中刪除除了java、javax、org以外的其他目錄。
3、把JDK_HOME\jre\lib下的rt.jar放到你的工作目錄下,即d:\的根目錄下(這樣僅僅便于在命令行中不用指定大量的文件名)。
4、執(zhí)行命令dir /B /S /X jdk7_src\*.java > filelist.txt 去創(chuàng)建需要編譯的java文件列表,用于javac命令編譯的輸入源文件,dir命令相關(guān)參數(shù)說明,/B: 不輸出額外的文件信息(沒有標(biāo)題信息或摘要),/S: 顯示指定目錄和所有子目錄中的文件,/X: 顯示為非 8.3 文件名產(chǎn)生的短名稱。格式是 /N 的格式, 短名稱插在長(zhǎng)名稱前面。如果沒有短名稱,在其位置則顯示空白。
5、執(zhí)行javac -J-Xms16m -J-Xmx1024m -sourcepath d:\jdk7_src -cp d:\rt.jar -d d:\jdk_debug -g @filelist.txt >> log.txt 2>&1 編譯后的文件將放入jdk_debug文件夾,編譯產(chǎn)生的日志將存到log.txt文件中。在日志文件中將看到大量的警告,但是沒有錯(cuò)誤信息。
6、進(jìn)入jdk_debug目錄執(zhí)行命令jar cf0 rt_debug.jar *,將編譯后的文件打包成rt_debug.jar包。
7、把新生成的jar包放到JDK_HOME\jre\lib\endorsed中(如果沒有endorsed文件夾,則手動(dòng)創(chuàng)建)。
說明:JDK_HOME表示JDK的安裝路徑,本文所有的命令都在在d:\下及其子目錄下執(zhí)行的。
簡(jiǎn)單點(diǎn),也可以將我下面提供的JDK7的調(diào)試版本的rt_debug.jar放入endorsed文件夾中。
以上這篇解決調(diào)試JDK源碼時(shí),不能查看變量的值問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
idea項(xiàng)目debug模式無法啟動(dòng)的解決
這篇文章主要介紹了idea項(xiàng)目debug模式無法啟動(dòng)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02Java實(shí)現(xiàn)將容器 Map中的內(nèi)容保存到數(shù)組
這篇文章主要介紹了Java實(shí)現(xiàn)將容器 Map中的內(nèi)容保存到數(shù)組,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09IDEA中JDK是1.8但Java版本只有21和17的解決辦法
JDK 1.8(Java Development Kit 1.8)是Java平臺(tái)的一個(gè)版本,它包含了用于開發(fā)和運(yùn)行Java應(yīng)用程序的工具和庫(kù),下面這篇文章主要給大家介紹了關(guān)于IDEA中JDK是1.8但Java版本只有21和17的解決辦法,需要的朋友可以參考下2024-01-01Java狀態(tài)設(shè)計(jì)模式實(shí)現(xiàn)對(duì)象狀態(tài)轉(zhuǎn)換的優(yōu)雅方式
Java狀態(tài)設(shè)計(jì)模式通過將對(duì)象的行為和狀態(tài)分離,使對(duì)象能夠根據(jù)不同的狀態(tài)進(jìn)行不同的行為操作。它通過將狀態(tài)抽象成一個(gè)獨(dú)立的類來實(shí)現(xiàn)對(duì)狀態(tài)的封裝,從而簡(jiǎn)化了復(fù)雜的條件判斷和狀態(tài)轉(zhuǎn)換2023-04-04SpringBoot操作Mongodb的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot操作Mongodb的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06java 記錄一個(gè)子串在整串中出現(xiàn)的次數(shù)實(shí)例
今天小編就為大家分享一篇java 記錄一個(gè)子串在整串中出現(xiàn)的次數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07Spring Data JPA 設(shè)置字段默認(rèn)值方式
這篇文章主要介紹了Spring Data JPA設(shè)置字段默認(rèn)值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Java中數(shù)組的使用與注意事項(xiàng)詳解(推薦)
數(shù)組是一組地址連續(xù)、長(zhǎng)度固定的具有相同類型的數(shù)據(jù)的集合,通過數(shù)組下標(biāo)我們可以指定數(shù)字中的每一個(gè)元素,下面這篇文章主要給大家介紹了關(guān)于Java中數(shù)組的使用與注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下2021-08-08