2009-08-21 18 views
46

Jak mogę przejść przez kod źródłowy JDK w IntelliJ IDEA 7 i zobaczyć informacje debugowania? Mogę obecnie uderzyć w punkty przerwania i przechodzić przez kod, ale informacje o debugowaniu są niedostępne. Oznacza to, że nie widzę wartości zmiennych lokalnych.Krok źródłowy kodu JDK w IntelliJ IDEA

Chcę tylko przejść przez kod źródłowy jednej klasy, jeśli to ma znaczenie. (Dla tego, co jest warte, jest to klasa javax.swing.text.html.HTMLDocument (i ja mam kopię odpowiedniego pliku .java).)

Odpowiedz

32

Jeśli zajrzysz do [menu Plik ->] Ustawienia -> Debugger -> Stepping zobaczysz lista "Nie wchodź do tych klas", prawdopodobnie z tam wymienionym "java. *". Czy tak jest? Możesz to wyłączyć.

Podobno informacje debugowania nie są dostępne. Według this thread:

Niestety, klasy JDK mają informacje debugowania dla parametrów i lokalnej zmiennej pozbawione.

lat temu złożył wniosek ten pomysł powinien wyprowadzić niezbędne informacje z kodu źródłowego (w zasadzie konwersji nazw zmiennych z indeksami do metod lokalnych var):
Debugger: Show variable information when no debug info

Proszę głosować/komentarz.

Aby obejść ten problem, można ponownie skompilować bibliotekę JDK ze źródeł, ale należy wykluczyć niektóre klasy, które nie mają dołączonego całego potrzebnego kodu źródłowego.

Co ciekawe, można pobrać beta version of Java 6u18, which has debug information in it (w pakiecie DEBUG).

+0

Jak wspomniałem w moim oryginalnego postu, mogę uderzyć moje punkty przerwania dobrze w javax. * zajęcia. Problem polega na tym, że informacje diagnostyczne nie są dostępne. W każdym razie, aby upewnić się, zrobiłem to, co sugerowałeś, ale informacje o debugowaniu wciąż nie są dostępne. –

27

UPDATE: IntelliJ IDEA 13+ wersja can provide local variables information without debug info.

Klasy Java, które są częścią JDK, są kompilowane bez informacji o debugowaniu ze względu na rozmiar i wydajność. Jeśli potrzebujesz informacji o debugowaniu w tych klasach, musisz albo zainstalować wersję rozwojową JDK, w której klasy są budowane z informacjami debugowania, albo odbudować części JDK, które chcesz debugować ze źródła, z włączonymi i wyłączonymi informacjami debugowania nowy JDK z tymi wersjami klas w słoikach.

This thread dostarcza instrukcje, jak odbudować klasy JDK w rt.jar z kodu źródłowego z informacjami debugowania.

P.S. To pytanie nie jest specyficzne dla IntelliJ IDEA.

0

ustawienie - kompilator - kompilator java - opcje java, należy zaznaczyć opcję "generuj informacje debugowania", a następnie skompiluje się z informacjami debugowania.

3

Wraz z informacją "Nie wpisuj tych klas" należy skonfigurować plik src.jar. Kliknij projekt prawym przyciskiem myszy, wybierz "Otwórz ustawienia modułu". W Ustawieniach platformy wybierz "Zestawy SDK". Wybierz wersję Java SDK, której używasz. Wybierz zakładkę Ścieżka źródłowa, naciśnij przycisk "+" i dodaj plik src.jar z JDK (lub oddzielnego pobierania źródła dla JDK OSX). Umożliwi to otwarcie klas JDK i wkroczenie do nich podczas debugowania.

+0

Jestem na Ubuntu 16.04 i OpenJDK 8. Aby uzyskać źródła JDK, musiałem osobno zainstalować dodatkowy pakiet: 'sudo apt-get install openjdk-8-source'. Dzięki http://askubuntu.com/questions/755853/how-to-install-jdk-sources dla rozwiązania. –

1

Zrobiłem to na moim Macu, aby uzyskać mój kod źródłowy Androida, ale podobne podejście powinno zadziałać.

  • File> Struktura projektu

  • Wybrane "SDK" w obszarze Ustawienia platformy.

  • Selected "Android SDK"

  • Wybrana zakładka "SourcePath"

  • Tłoczone "+"

  • Przeglądany do lokalizacji mojego kodu źródłowego Javy

12
  1. Zainstaluj JDK
  2. Dodaj src.jar ścieżka
    1. Przejdź do: Struktura projektu (Ustawienia projektu)> Ustawienia platforma> SDK> Ścieżka źródłowa
    2. Dodaj ścieżkę do pliku src.jar
      • OSX przykład: /Library/Java/JavaVirtualMachines/1.6.0_45-b06-451.jdk/Contents/Home
      • Okna przykład: C: \ Program Files \ Java \ jdk1.7.0_03 (sprawdź program (x86) dla 32-bitów)
    3. Czekaj dużo czasu na indeksowanie!
  3. filtr Usuń debugger
    1. idź do: Ustawienia> Debugger> Stepping
    2. Odznacz pakiet (y) chcesz, na przykład javax. *