2011-01-17 1 views
2

Я довольно давно использую удаленную отладку от JDeveloper на сервере Weblogic и нашел, что это очень полезно. Но мне интересно понять, как удаленная отладка реализована технически.Как реализована удаленная отладка вообще

Когда я делаю код java-кода и перестраиваю класс в jdeveloper на удаленной машине, откуда я отлаживаю сервер, изменения кода автоматически выбираются сервером. Как это произошло? Инструмент отправляет скомпилированный класс java в сети на сервер?

Можете ли вы поделиться любыми документами/ссылками, объясняющими технические аспекты удаленной отладки.

Благодарность & С уважением, Хариш

ответ

0

Не уверен, если вы спрашиваете об удаленной отладке вообще, или для конкретных инструментов вы описываете.

Я много о Java/JDeveloper не знаю, но вообще удаленной отладки работает следующим образом:

  • На целевой машине, специальный серверный процесс крюков в исполняемом вы хотите отлаживать, так же, как отладчик будет выполняться локально. Этот сервер не должен знать о символах и исходном коде, просто выполняйте исполняемый файл. Используя системные команды, он может попросить его остановить и изучить его пространство памяти.
  • На хост-машине сам отладчик запускается, а также имеет копию исполняемого файла и его исходного кода. Отладчик взаимодействует с сервером на целевой машине, используя какой-то протокол (TCP/IP или, возможно, последовательный для встроенных устройств), и просит его шаг, анализирует определенные ячейки памяти, о которых он знает из информации об отладке в исполняемом файле, может показать исходный код отлаживается пользователем и т. д.

Прочитайте, например, на gdbserver, который, вероятно, является самым популярным удаленным сервером отладки.

Надеюсь, что это поможет :)

+0

Спасибо. Я не ищу какой-либо конкретный инструмент. Скорее, я хочу понять, как это работает. – Harish

+0

Итак, когда я компилирую исходный код после изменений, он отправляет скомпилированный файл класса на сервер через сеть? Это как удаленный сервер получает java-код изменений? – Harish

+0

@Harish: это один из способов, которым это может быть реализовано, конечно. Но это не «интересные» детали реализации IMHO. Более интересна концепция разделения отладчика на два коммуникационных объекта –

Смежные вопросы