Почему 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 к сгенерированным файлам классов (используемым отладчиком).