2009-08-21 144 views
46

如何在IntelliJ IDEA 7中逐步瀏覽JDK源代碼並查看調試信息?我目前可以打破斷點並逐步執行代碼,但調試信息不​​可用。這意味着我看不到局部變量的值。步驟通過IntelliJ IDEA中的JDK源代碼

我只想穿過一個類的源代碼,如果這很重要。 (對於它的價值,這是javax.swing.text.html.HTMLDocument類(我確實有一個相應的.java文件的副本)。)

回答

32

如果您在[文件]菜單 - >]設置 - >調試器 - >步進中看到一個列表「不要進入這些類」,可能在那裏列出「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包中)。

+0

正如我在原來的文章中提到,我打我的斷點只是在使用javax罰款。*類。問題是調試信息不​​可用。無論如何,只要確定,我做了你的建議,但調試信息仍然不可用。 – 2009-08-21 19:56:36

27

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的。

0

設置 - 編譯器-java編譯器-java選項,你應該檢查選項「生成調試信息」,然後,它會用調試信息編譯。

3

隨着「不要進入這些類」信息,應配置src.jar。右鍵單擊該項目,選擇「打開模塊設置」。在平臺設置下,選擇「SDK」。選擇您正在使用的Java SDK版本。選擇Sourcepath選項卡,點擊「+」按鈕,然後從JDK中添加您的src.jar(或者爲OSX JDK單獨下載源代碼)。這將允許您打開JDK類並在調試時進入它們。

+0

我在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

1

我在我的Mac上這樣做了我的Android源代碼,但類似的方法應該爲你工作。

  • 文件>項目結構

  • 選擇 「軟件開發工具包」 下的平臺設置。

  • 選擇 「Android SDK中」

  • 選擇 「SOURCEPATH」 選項卡

  • 按下 「+」

  • 瀏覽到的我的Java源代碼中的位置

12
  1. 安裝JDK
  2. 添加src.jar路徑
    1. 轉到:項目結構(項目設置)>平臺設置>的SDK> Sourcepath
    2. 添加到src.jar的路徑
      • OSX例如:/Library/Java/JavaVirtualMachines/1.6.0_45-b06-451.jdk/Contents/Home
      • Windows示例:C:\ Program Files文件\的Java \ jdk1.7.0_03(檢查程序(86)對於32位)
    3. 等待很長時間才能建立索引!
  3. 刪除調試器濾波器
    1. 轉到:設置>調試>步進
    2. 取消選中包(多個)需要,例如使用javax。*