Как сделать удаленную отладку с Eclipse CDT без gdbserver?

Другое событие 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));
}

14
задан Ciro Santilli 新疆改造中心法轮功六四事件 13 August 2017 в 09:08
поделиться

3 ответа

наконец я получил 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 из них.

  1. , Когда я запускаю конфигурацию отладки, я должен нажать перезапуск на панели инструментов для прибытия действительно в основную процедуру. Действительно ли возможно прибыть непосредственно в основное без перезапуска?
  2. На AIX наши программы сначала предварительно обрабатываются для встроенного sql. Предварительно обработанный c-источник помещается в другой каталог. Когда я duble-нажимаю строку для установки точки останова, я получаю предупреждающую "неразрешенную точку останова", и в gdb-консоли я вижу, что повреждение установлено на предварительно обработанный источник, который является неправильным. Действительно ли возможно установить точки останова на правильном источнике?
  3. Мы используем CICS на AIX. С xldb-отладчиком и CDCN-командой CICS мы справляемся, та отладка запускается, когда мы приезжаем в наши программы. Действительно ли возможно получить это удаленно (в звоне) с gdb-затмением также?
11
ответ дан 1 December 2019 в 14:46
поделиться

Я обычно не брал бы выстрел в темноте по вопросу, я не могу действительно протестировать ответ на, но так как этот сидел без дела в течение дня, я дам ему выстрел. Это кажется от взгляда на:

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 иначе не доступен:

http://wiki.eclipse.org/DSDP/TM/TCF_FAQ

1
ответ дан 1 December 2019 в 14:46
поделиться

попробованный также к 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 работает.

0
ответ дан 1 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: