怎么对jdk核心包进行跟踪调试,并查看调试中的变量值
?? java是一門開源的程序設計語言,喜歡研究源碼的java開發者總會忍不住debug一下jdk源碼。雖然官方的jdk自帶了源碼包src.zip,然而卻存在如下兩個問題。
? ? ? ? a.debug時查看變量十分麻煩
? ? ? ? b.sun.*包中的類沒有提供API文檔及源碼
? ? ? ? 如何解決這兩個問題呢?
一.debug時查看rt.jar中的變量
? ? ? ? 因為oracle提供的jre中rt.jar不帶debug信息:orcale在編譯src時使用了 javac -g:none,意思是不帶任何調試信息,這樣可以減小rt.jar的大小,因此即使rt.jar包的source attachement指定了jdk安裝包下的src.zip,也不便于調試,會出現諸如不能查看調試時的變量等問題。若想正常調試jdk,就只能重新編譯src.zip,下面介紹下編譯src.zip的方法。
1.在eclipse中新建一個java項目"jdk",然后在src目錄上導入"Archive File",選擇源碼src.zip導入,導完目錄結構如下(網上有說不用管報錯,實際上這里的報錯一般都是一些轉型的問題,直接修復即可)
?
2.右鍵項目export...,然后導出為jar包,起名為rt_debug.jar:
3.修改eclipse的jre設置,將rt_debug.jar添加到jre中,并移動到最前面
4.最后再查看debug變量,可以看到變量值了
二.sun.*包中的類沒有提供API文檔及源碼
? ? ? ? 我只能想到從Open JDK官網下載Open JDK源碼,并從中獲取sun源碼包,加到我創建的jdk工程中并修復報錯,然后再導出為jar包(接下來的步驟同debug時查看rt.jar中的變量一樣)。
Open JDK源碼包下載地址:
? ? ? ? Open JDK6:http://download.java.net/openjdk/jdk6/
? ? ? ? Open JDK7:http://download.java.net/openjdk/jdk7/
? ? ? ? Open JDK8:http://download.java.net/openjdk/jdk8/
單個查看源碼及javadoc地址:http://www.docjar.com/html/api/sun/
?
?
轉載自:?https://bijian1013.iteye.com/blog/2302520
總結
以上是生活随笔為你收集整理的怎么对jdk核心包进行跟踪调试,并查看调试中的变量值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java:基本数据类型
- 下一篇: java:不可变类