it-swarm.com.ru

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

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

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

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

Выражение просмотра:

Это нормальная ситуация? Есть ли способ отладки?

Обновление 1:

enter image description here


Обновление 2:

enter image description here

Обновление 3:

enter image description here

17
gstackoverflow

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

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

17
Absurd-Mind

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

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

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

0
Jay Snayder

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

0
Alexis Dufrenoy

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

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

0
xwhyz

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

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

0
emphywork