如何在IntelliJ IDEA 7中逐步瀏覽JDK源代碼並查看調試信息?我目前可以打破斷點並逐步執行代碼,但調試信息不可用。這意味着我看不到局部變量的值。步驟通過IntelliJ IDEA中的JDK源代碼
我只想穿過一個類的源代碼,如果這很重要。 (對於它的價值,這是javax.swing.text.html.HTMLDocument
類(我確實有一個相應的.java文件的副本)。)
如何在IntelliJ IDEA 7中逐步瀏覽JDK源代碼並查看調試信息?我目前可以打破斷點並逐步執行代碼,但調試信息不可用。這意味着我看不到局部變量的值。步驟通過IntelliJ IDEA中的JDK源代碼
我只想穿過一個類的源代碼,如果這很重要。 (對於它的價值,這是javax.swing.text.html.HTMLDocument
類(我確實有一個相應的.java文件的副本)。)
如果您在[文件]菜單 - >]設置 - >調試器 - >步進中看到一個列表「不要進入這些類」,可能在那裏列出「java。*」。是這樣嗎?你可以把它關掉。
顯然調試信息不可用。根據this thread:
不幸的是,JDK類有調試信息的參數和局部變量剝離。
幾年前,我提起這個想法應該推斷從源代碼中的必要信息的請求(基本上是轉換變量名索引到方法的局部變量):
Debugger: Show variable information when no debug info請投票/評論。
作爲一種解決方法,您可以從源代碼重新編譯JDK,但是您需要排除一些沒有附加所有必需源代碼的類。
有趣的是,你可以下載beta version of Java 6u18, which has debug information in it(在DEBUG包中)。
UPDATE:IntelliJ IDEA 13+版本can provide local variables information without debug info。
作爲JDK一部分的Java類由於大小和性能原因而編譯時沒有調試信息。如果您需要這些類中的調試信息,您需要安裝開發版本的JDK,其中類是使用調試信息構建的,或者在啓用調試信息的情況下重新構建要從源代碼調試的JDK部分這些新版本的JDK將這些版本的類放入jar中。
This thread提供瞭如何使用調試信息從源代碼重建rt.jar中的JDK類。
P.S.這個問題不是特定於IntelliJ IDEA的。
設置 - 編譯器-java編譯器-java選項,你應該檢查選項「生成調試信息」,然後,它會用調試信息編譯。
隨着「不要進入這些類」信息,應配置src.jar。右鍵單擊該項目,選擇「打開模塊設置」。在平臺設置下,選擇「SDK」。選擇您正在使用的Java SDK版本。選擇Sourcepath選項卡,點擊「+」按鈕,然後從JDK中添加您的src.jar(或者爲OSX JDK單獨下載源代碼)。這將允許您打開JDK類並在調試時進入它們。
我在Ubuntu 16.04和OpenJDK 8上。 要獲得JDK源代碼,我必須單獨安裝一個附加軟件包: 'sudo apt-get install openjdk-8-source'。 感謝http://askubuntu.com/questions/755853/how-to-install-jdk-sources提供的解決方案。 – 2016-11-02 23:03:12
我在我的Mac上這樣做了我的Android源代碼,但類似的方法應該爲你工作。
文件>項目結構
選擇 「軟件開發工具包」 下的平臺設置。
選擇 「Android SDK中」
選擇 「SOURCEPATH」 選項卡
按下 「+」
瀏覽到的我的Java源代碼中的位置
正如我在原來的文章中提到,我打我的斷點只是在使用javax罰款。*類。問題是調試信息不可用。無論如何,只要確定,我做了你的建議,但調試信息仍然不可用。 – 2009-08-21 19:56:36