Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
наконец я получил gdb выполненный remotly во всяком случае теперь. В символе Ошибки на панели задач я взял Настройки отладочного процесса - Аппаратная Отладка GDB.
В Основных Приложениях C/C++ я установил полный путь на доле Samba исполняемого файла (X:\abin\vlmi9506
). Я также установил связанную папку на X:\abin
в проекте. Затем я изменил свой сценарий пакетной обработки в Установке GDB. Это непосредственно не называет gdb на сессии звона, но сценарии оболочки Unix, который открывает gdb. Этим у меня есть возможность установить некоторые переменные среды Unix для программы прежде, чем сделать отладку. Вызов в моем пакете:
plink.exe prevoax1 -l suttera -pw XXXXX -i /proj/user/dev/suttera/vl/9506/test/vlmi9506ddd.run 20155 dev o m
В сценарии Unix я запустил gdb с параметрических усилителей командной строки от затмения, которое я нашел в своих прежних пробных версиях. Вызов в команде оболочки похож на это:
gdb -nw -i mi -cd=$LVarPathExec $LVarPathExec/vlmi9506
Затем IBM просто дает gdb 6.0 для AIX. Я нашел версию 6.8 в сети в http://www.perzl.org/aix/index.php?n=Main.Gdb . Наш Администратор установил его.
я могу теперь ступить через программу и наблюдать переменные. Я даже могу записать gdb-команды непосредственно в консольном представлении. yabadabadooooooo
Hope, который помогает другим также. Не может сказать, каково было действительно действие победителя. Но каждый ответ дает более новые вопросы. Теперь я получил 3 из них.
Я обычно не брал бы выстрел в темноте по вопросу, я не могу действительно протестировать ответ на, но так как этот сидел без дела в течение дня, я дам ему выстрел. Это кажется от взгляда на:
http://wiki.eclipse.org/TM_and_RSE_FAQ#How_can_I_do_Remote_Debugging_with_CDT.3F
..., что, даже если CDT изменился с тех пор, которым была сделана страница Wiki, необходимо все еще смочь изменить команду отладки на:
ssh remotehost gdb
вместо того, чтобы использовать ТМ, который использует gdbserver. Это, вероятно, будет немного медленнее, чем ТМ удаленная отладка начиная с того на самом деле использование локальный gdb, но с другой стороны этот способ, которым Вы не будете иметь к NFS или SMB, монтирует Ваш исходный код для предоставления доступа к этому доступным для локального отладчика (и если Вы будете на LAN, то это, вероятно, не будет иметь значения во всяком случае).
существует также ссылочная реализация TCF для Linux, который Вы можете или не можете иметь никакой удачи при перекомпиляции для AIX, но это допускает удаленную отладку, если gdbserver иначе не доступен:
попробованный также к remotly отлаживают прикладное Экс-ан-Провансом с окнами eclipse-cdt-gdb. Был заблокирован в конце с проблемами пути Unix/окон. Возможно, мой результат может помочь u немного далее - возможно, Вы уже получили его работа. Я интересуюсь Вашим комментарием. спрошенный относительно портала новостей о затмении - после ответа martin oberhuber (еще раз спасибо) попробовал dsp dd (также заблокированный с проблемой пути) и установил запрос в затмении Bugzilla.
здесь ссылка на новости: http://www.eclipse.org/newsportal/article.php?id=406&group=eclipse.dsdp.tm Здесь мое Bugzilla: https://bugs.eclipse.org/bugs/show_bug.cgi? id=252758
В данный момент, который мы все еще отлаживаем локально с xldb, но я пробую ddd-gdb в данный момент. По крайней мере локально gdb работает.