Почему Eclipse не показывает значения локальных переменных при отладке файла класса из JDK?

У меня есть следующая проблема.

Я хочу отлаживать файлы классов. Например, JDK.I загрузил исходники и затем привязал их.

public File[] listFiles(FilenameFilter paramFilenameFilter)
  {
    String[] arrayOfString = list();//now we here
    if (arrayOfString == null) return null;
    ....
  }

тогда я набираю f6, и мы переходим к следующей строке. После этого я пытаюсь посмотреть значение arrayOfString, но я вижу следующее:

выражение:

Это нормальная ситуация?

Есть ли способ для отладки?

update1

enter image description here


Update2

enter image description here

обновление 3

enter image description here

Ответы

Ответ 1

Проблема заключается в том, что файлы source/class из JDK скомпилированы без отладочной информации, и поэтому eclipse не может проверять эти vars. Подробнее см. этот ответ.

Чтобы решить вашу проблему, вам нужно получить другую команду rt.jar или скомпилировать ее самостоятельно.

Ответ 2

Вы можете увидеть все значения переменных в окне "Переменные". Выражения будут отображаться только при наличии областей, но иногда они не ведут себя так, как мы хотим.

Итак, мое предложение - использовать окно "Переменные" для просмотра всех переменных и их значений.

Ответ 3

Я рекомендую использовать ctrl + shift + i для выбранного выражения, которое inspect.

Дополнительная опция - добавить Display в свою среду, где вы можете ввести свои собственные выражения и проверить их, как если бы они были помещены в код.

Ответ 4

В представлении "Выражения" вы можете ввести любое выражение, и Eclipse попытается оценить его в текущем контексте выполнения. Это означает, что если ваше выражение недействительно в текущем контексте (например, вы пытаетесь оценить object.myMethod(), а объект имеет значение null), вы получите сообщение об ошибке, которое вы указали.

Ответ 5

Когда это началось со мной, это не было разрешено некоторыми из этих решений, и это была не единственная проблема, с которой я начал начинать.

Я хотел бы предложить другое решение (для себя включено). Перейдите в Android Studio как можно больше своей рабочей области и начните знакомиться с новой средой IDE. Если вы разрабатываете для компании, попробуйте и заработаете в своих часах, чтобы уделить время времени, чтобы перенести их, потому что некоторые из них будут легкими, а некоторые с компонентами NDK, скорее всего, не будут.

Но при отключении Eclipse от поддержки и сосредоточении внимания на Android Studio от Google лучше всего для нас (только, на мой взгляд, конечно) начать изучать новую среду. Сейчас в довольно стабильной точке он превосходит обычную сторону разработки приложений для Android над Eclipse.

Ответ 6

да, вы можете использовать опцию inspect в меню (чуть ниже часов), выбрав выражение с курсором мыши. Убедитесь, что вы правильно выбрали все выражение.

как если ниже приведен код

if(object.value())
{
// some code
}

поэтому выберите только object.value() и щелкните правой кнопкой мыши и выберите inpsect

И еще один вариант - увидеть значения переменных в variable вкладке

Ответ 7

Возьмем Windows → Prefrences → Java → Complier, fum the menbar Eclipse и установите флажок для добавления атрибутов Add Variable к сгенерированным файлам классов (используемым отладчиком).