2009-08-21 3 views
46

Как я могу перейти через исходный код JDK в IntelliJ IDEA 7 и посмотреть информацию об отладке? В настоящее время я могу ударить точки останова и выполнить код, но информация об отладке недоступна. Это означает, что я не вижу значения локальных переменных.Шаг через исходный код JDK в IntelliJ IDEA

Я только хочу перейти через исходный код одного класса, если это имеет значение. (Для чего это стоит, это класс 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. * классы. Проблема в том, что информация об отладке недоступна. Во всяком случае, чтобы быть уверенным, я сделал то, что вы предложили, но информация об отладочной записи по-прежнему недоступна. –

27

ОБНОВЛЕНИЕ: IntelliJ IDEA 13+ версия can provide local variables information without debug info.

Java-классы, которые являются частью JDK, скомпилированы без отладочной информации по причинам размера и производительности. Если вам нужна информация об отладке в этих классах, вам также нужно будет установить версию JDK для разработки, в которой классы создаются с информацией об отладке или перестраивать части JDK, которые вы хотите отлаживать из источника, с включенной информацией об отладке и настройкой новый JDK с этими версиями классов в баночках.

This thread содержит инструкции по восстановлению классов JDK в rt.jar из исходного кода с информацией об отладке.

P.S. Этот вопрос не относится к IntelliJ IDEA.

0

настройка - компилятор - java Компилятор - параметры java, вы должны проверить опцию «генерировать информацию отладки», затем она будет компилироваться с информацией об отладке.

3

Наряду с информацией «Не входите в эти классы» необходимо настроить src.jar. Щелкните правой кнопкой мыши проект, выберите «Открыть настройки модуля». В разделе «Настройки платформы» выберите «SDK». Выберите версию Java SDK, которую вы используете. Выберите вкладку «Исходный путь», нажмите кнопку «+» и добавьте свой src.jar из JDK (или отдельную загрузку исходного кода для 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 для решения. –

1

Я сделал это на своем Mac, чтобы получить исходный код для Android, но подобный подход должен сработать для вас.

  • Файл> Структура проекта

  • Избранные "SDKs" в разделе Параметры платформы.

  • Selected "Android SDK"

  • Вкладка Selected "SourcePath"

  • прессованные "+"

  • просмотрены на месте моего исходного кода Java

12
  1. Установите JDK
  2. Добавить src.jar путь
    1. Перейти к: Структура проекта (Настройки проекта)> Параметры платформы> SDKs> Исходный путь
    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 (проверка программы (x86) для 32-разрядных)
    3. Подождите, пожалуйста, для индексации!
  3. Удалить отладчик фильтр
    1. Перейти к: Настройки> Debugger> Шаговые
    2. Снимают пакет (ы) вы хотите, например, javax. *
Смежные вопросы