Дистанционно за отстраняване на грешки на Java приложения с затъмнение

Дистанционно отстраняване на грешки могат да бъдат полезни за развитието на приложения, например при разработването на програми за слабите компютри, които не могат да поддържат развитието на околната среда, отстраняване на грешки или специализирани компютърни програми, като например уеб сървъри, които не позволяват прекъсване на услугата. Други примери - Java приложения, които работят на ниско памет или слаб системи процесори, като например мобилни устройства, ситуация, в която един разработчик иска да се разделят система за разработване на приложения на системата, когато заявлението ще работят и т.н.

Предварителни

стартиране на програмата Configuration

Ако все още не сте инсталирали V3.4 развитието на IDE Eclipse (Ганимед), да го изтеглите. Освобождаването Ганимед в конфигурацията на стартирането на отдалечени Java-базирани приложения добавят обект-конектор, гнездо слушане (гнездо слушане съединител). New Eclipse обект конектор, гнездо за слушане, ви позволява да стартирате Java дебъгер, който слуша за връзки на определен контакт. Прил програма може да се управлява от опциите за команден ред, които определят връзка с отстраняване на грешки. Преди Ганимед поддържа само обект конектор за връзка с гнездо (сокети поставяне конектор), а програмата дебъгва се управлява като домакин, която се свързва с дебъгер. Mobile, която работи като домакин не е възможно поради липса на памет и процесорна мощ.

За дистанционно отстраняване на грешки, трябва да имате Java Virtual Machine (JVM) V5.0 или по-късно, например, IBM® J9 или Sun Microsystems Java SE Kit развитие (JDK). В тази статия ще се съсредоточи върху дистанционно отстраняване на грешки, отколкото възможностите общ отстраняване на грешки инструменти в Eclipse. Вижте ресурси за повече информация за отстраняване на грешки се посочва в Eclipse, и къде да намери по-горе софтуер.

Въведение в JPDA

Често използвани съкращения

  • JDI - Java Debug Interface (Java Debug интерфейс)
  • JDT - Java Development Tools (Инструменти Java за развитие)
  • JDWP - Java Debug Тел Protocol (протокол Java информацията за грешки)
  • JPDA - Java Platform Debugger Архитектура (Debugger Архитектура на платформата Java)
  • JVM - Java Virtual Machine (Java Virtual Machine)
  • JVMDI - JVM Debug интерфейс (за отстраняване на грешки интерфейс Java Virtual Machine)
  • JVMTI - JVM Инструмент Interface (Java виртуална машина инструмент интерфейс)
  • VM - Virtual Machine (VM)

Технология Java Platform Debugger Архитектура (JPDA) на компанията Sun Microsystems - е многослойна архитектура, с която го прави лесно за отстраняване на грешки Java приложения във всички ситуации. JPDA технология се състои от два интерфейса (JVMTI и JDI, съответно), JDWP протокол и две софтуерни компоненти, които ги свързват заедно (сървър и клиент части). Тя е предназначена за отстраняване на грешки във всяка среда. JPDA работи не само на настолни компютри, но и на вградени платформи.

1. Debugger Архитектура списък на платформата Java

Следователно, всякакви инструменти от трети страни и виртуални машини, базирани на JPDA, съобщават без никакви проблеми. Този клиент-сървър архитектура дава възможност за отстраняване на грешки Java програми от локалния компютър, който работи на Java платформа, или дори да доведе до отстраняване на грешки от отдалечен компютър в локалната мрежа.

Преди да започнем да говорим за отстраняване на грешки скриптове, трябва да се запознаете с две термините, използвани в JPDA на документация: съединител (конектор - конектора) и транспорт (транспорт - диригент). Connector - абстракция въведен в JDI и се използва за установяване на връзка между дебъгер за кандидатстване и целевата виртуалната машина. Транспорт контролира как приложенията достъп до данни и прехвърляне на данни между клиента и сървъра страна. Конектори са свързани с някои видове транспорт и режими за свързване. При изпълнението на Sun JPDA, има два транспортен механизъм поддържа от Microsoft® Windows®: гнездо транспорт (цокъл транспорт) и транспорт с помощта на споделена памет (споделена памет транспорт). Следните видове конектори:

  • обектно-конектор за използване с гнезда (муфа закрепване конектор)
  • обект съединител работи с обща памет (споделена памет закрепване конектор)
  • обект съединител слушане гнездо (гнездо слушане конектор)
  • обект конектор слушате споделена памет (споделена памет слушане конектор)
  • Съединител обект, за да се стартира от команден ред (команден ред стартирането конектор)

Когато се установява връзка между прилагането на дебъгер и целевата виртуална машина, от едната страна действа като сървър и чака за връзка. След докато другата страна е свързан към програмата чака за връзка, и установява връзка. Връзките позволяват програма-дебъгер и целевата виртуална машина, за да действа като сървър. Сътрудничили процеси могат да се изпълняват на една и съща система или на различни компютри.

Проблемът с дистанционно отстраняване на грешки Java-програми не е в клиентския интерфейс на външния дебъгер и дистанционно отстраняване на грешки от страна на сървъра. За съжаление информация по този въпрос в помощната система на Eclipse присъства в недостатъчни количества. В действителност, JDI и JVMTI подкрепена от Eclipse и Java Runtime Environment. Само един компонент архитектура може да доведе до проблеми - тя доклад JDWP, съдържащ информацията, да общуват с JVMTI и JDI. JDWP съдържа много параметри, които са били добавени към отдалечен кол Java-базирани приложения. По-долу са някои от параметрите, използвани в тази статия.

-Xdebug Позволява отстраняване на грешки. -Xrunjdwp: Зарежда JDWP конфигурация на виртуална машина. В този случай, за обмен на информация с прилагането на външното дебъгер с помощта на транспорта и JDWP-протоколи. Специфични subparameters са описани по-долу.

Започвайки с Java V5 вместо -Xdebug -Xrunjdwp и можете да използвате -agentlib: jdwp. Но ако искате да се свържете с версия на виртуална машина по-ниска от V5, можете да използвате само опция -Xdebug и -Xrunjdwp. По-долу са кратки описания -Xrunjdwp параметри.

За повече информация за всяка настройка, вижте документацията JPDA (вж. Ресурси).

Обява 2 показва пример за тичане виртуални машини в отстраняване на грешки и да се свържете готовност сокет на порт 8765.

Обява 2. Целева VM действа като сървър за отстраняване на грешки

Обява 3 показва как да се присъедините към работеща програма дебъгер с помощта на муфа за домакин 127.0.0.1 и порт 8000.

Обява 3. Целева VM действа като клиент за отстраняване на грешки

Възможността за дистанционно грешки в Eclipse

Eclipse развитие на околната среда - е клиент компонент на дебъгер-графичен потребителски интерфейс на Java. Изпълнението на JDI взета от org.eclipse.jdt.debug пакет. Тази статия не обсъждаме подробностите за прилагането на JDI. Вижте ресурси за информация относно технологията на Eclipse JDT и Java JDI.

Първото нещо, което трябва да знаете - какъв тип конектор предлага в Eclipse трябва да се използва. За да разберете какви типове отдалечени връзки, поддържани от Eclipse, можете да добавите тип старта конфигурация Remote Java приложение (Remote приложение Java-базирани), като използвате менюто Eclipse Run (Старт)> Отстраняване на грешки от конфигурации. (Конфигурация Debug), и след това изберете типа на съединителя от падащия списък. Освобождаването на Ганимед поддържа два вида конектори:

  • Гнездо Прикачване (за гнездо връзки)
  • Socket Слушайте (за създаване на контакт, който може да бъде свързан)

За чака конектор за свързване на контакт (гнездо за слушане конектор) Eclipse виртуална машина като сървър, който ще трябва да се свържете отдалечено приложение Java-базирани. За конектор, който се свързва с гнездо (сокети поставяне конектор) сървър е целевата виртуалната машина. няма разлика между двата вида конектори, и потребителят може да избере някоя от тях за отстраняване на грешки на заявлението. Като правило, защото на необходимите изчислителни ресурси, тъй като сървъра се използва за отстраняване на грешки по-бързо и по-мощен компютър.

Преди отстраняване на грешки Java-базирани приложения, трябва да гарантира, че заявленията са включени за отдалечени опции за отстраняване на грешки. Ако тази информация не е на разположение, в хода на отстраняване на грешки има съобщение "информация за отстраняване на грешки не е на разположение" (информация за отстраняване на грешки не е на разположение) или "Не може да се инсталира прекъсване поради редица липсващата линия" (това е невъзможно да се определи точката на прекъсване поради липса на номер на ред). Промяна на настройките е възможно чрез менюто Eclipse: Window (прозорец)> Preferences (Настройки)> Java> Compiler (съставител).

Фигура 1. Debug Настройки в Eclipse


Отстраняване на грешки на заявление от разстояние

Сега можете да започнете отдалечени приложения за отстраняване на грешки. За да направите това, изпълнете следните стъпки:

1. Създаване на Java-проект с един прост клас Създаване на прост клас за отстраняване на грешки пример. Обява 4 показва пример на кода за този клас.

Обявата 4. Проба код за отстраняване на грешки

2. Задайте точка на прекъсване Задайте точка на прекъсване в кода. В този пример, точка на прекъсване се настройва на линия System.out.println ( "Това е тест.").

Фигура 2. Определяне на гранични стойности в Eclipse

3. Местно отстраняване на грешки прилагането Преди отстраняване на грешки на приложението, трябва да се гарантира, че този проект задавате опции за отстраняване на грешки, както е показано на фигура 1. Debug прилагането на местно ниво е задължително, но трябва да сте сигурни, че цялата информация за отстраняване на грешки е на разположение. За да направите това, щракнете с десния бутон на мишката върху проекта Java, изберете Debug Както (за отстраняване на грешки и двете), след което изберете опция Java приложение (Java-приложение) (вж. Фигура 3). Ако изпълнението на кандидатстване спря точка на прекъсване, информацията за отстраняване на грешки присъства и конфигуриран правилно. Можете да използвате и други отстраняване на грешки функции, като показване на стека за отстраняване на грешки, променливи, контролни точки на прекъсване, и т.н.

Фигура 3. Местно грешки приложение

4. Износ на Java проект Ние ще използваме тази молба като пример за отстраняване на грешки. За да направите това, щракнете с десния бутон върху Java-проекта, изберете Export (износ), а след това на Java. След това JAR файл (JAR-файл) или Изпълнима JAR файл (изпълним JAR-файл) за износ на проекта. JAR-файл ще бъде генериран в определено място. Ако изходния код на Java не е същото като прилагането дебъгва, функцията за отстраняване на грешки няма да работи коректно. 5. ръчно да стартирате Java базиран на приложението да направите това, отворете конзолата и стартирате приложението ръчно, за да се уверите, че средата за изпълнение е конфигуриран правилно.

Обява 5. Обадете се на Java приложения

6. дистанционно отстраняване на грешки приложение за това, трябва да копирате файла JAR до желаното място на отдалечения компютър, или дори на локалния компютър, предизвика сървъра за отстраняване на грешки и на клиента да се свърже с него. А просто приложение, Java-базирани може да работи като сървър за отстраняване на грешки или клиент. В зависимост от конфигурацията на Eclipse може да изберете вида на връзката: Socket Прикрепете или Socket Слушай. Следващите две части ще обясняват как да стартирате приложението като клиент или сървър.

Целева VM действа като сървър за отстраняване на грешки

В следващия пример, отдалечени Java-базирани приложения действа като сървър за отстраняване на грешки и чака за връзка към сокет на порт 8000. Целта виртуална машина, за да се преустановява до момента, докато не се приложи за корекция на грешки.

Обявата 6. Един пример за използване на виртуална машина за свързване режим на готовност в гнездото в Eclipse
Фигура 4. Конфигуриране на връзката със сървъра на гнездо за отстраняване на грешки


За да спрете виртуалната машина, която искате да се свържете, за отстраняване на грешки в менюто заявление, че го направите прекратяване на дистанционно VM (за да се позволи блокирането на отдалечената машина).

Фигура 5. бутон за спиране Eclipse


Целева VM действа като клиент за отстраняване на грешки

Вторият пример - е да се използва просто приложение, Java, който действа като клиент за отстраняване на грешки, и външни Debugger действа като сървър, отстраняване на грешки. Eclipse да чака за свързвания, използващи режим контакти, които могат да бъдат свързани (цокъл слушате-режим). Външно дебъгер трябва да започне рано, за да започне да слуша указания порт. Фигура 6 показва настройките за конфигурация за готовност връзки.

Фигура 6. конфигурация за създаване на контакт, което може да се свърже


Ако натиснете бутона за отстраняване на грешки (дебъгване) в лентата с инструменти на Eclipse, лентата на състоянието ще се появи съобщение "чака VM за да се свържете към порт 8000." (в очакване на връзки на порт 8000). След това е необходимо да се започне програмата за отдалечено наблюдение. Обява 7 показва как да стартирате Java-базирано приложение в режим на отстраняване на грешки на клиента и да го свържете към работеща програма дебъгер, цокъл, който се намира на 127.0.0.1 домакин на порт 8000.

Обявата 7. Един пример за използване на виртуална машина в режим на изчакване на връзката в Eclipse

Ако всичко е направено правилно, той ще бъде показан набор от Eclipse прозорци, използвани за отстраняване на грешки приложения и отдалечено изпълнение на приложение Java обикновено се спря. Това е подобно на стъпка 3 на местно грешки (вж. Фигура 3). На този етап може да се използва за отстраняване на грешки стандартни функции, като например определяне на точки на прекъсване и ценности, стъпка изпълнение и т.н.

заключение

Статията показва как можете да използвате вградените типове конфигурации за отдалечени Eclipse Java-базирани приложения, за да се даде възможност за дистанционно отстраняване на грешки на приложения. Доказано е, как да конфигурирате Java-базирано приложение, за да се даде възможност за дистанционно отстраняване на грешки, и предоставя информация за това, което видове конектори възразят подкрепя Eclipse. И накрая, беше показано как да се прилага тази технология за реални проекти.

Вземете продукти и технологии

  • Java 2 Standard Edition V5 или по-нови версии на разположение на уеб-сайта Sun Microsystems. (EN)
  • Последните версии на продукти, базирани на технологията Eclipse в IBM alphaWorks портал. (EN)
  • Изтегляне Eclipse платформата и други проекти от уеб-сайта Фондация Eclipse. (EN)
  • Изтеглете версии за оценка на продукти на IBM и да получите достъп до инструменти за разработване и дебъгване на приложения, както и мидълуер DB2®, Lotus®, Rational®, Tivoli® и WebSphere®. (EN)
  • Подобряване на вашия проект за развитие с отворен код с пробен софтуер от IBM. който може да бъде изтеглен от интернет страницата или да се поръчат на DVD. (EN)
  • IBM пробен софтуер. пробна версия на разработчика на софтуер, който може да бъде изтеглен от страницата на developerWorks. (EN)
  • Участвайте в дискусионния форум.
  • Дискусионна група Eclipse Платформа - е първото място, където да отида, за да обсъдят въпроси, свързани с Eclipse. (Избор на тази връзка ще започнете да четете Usenet дискусионни групи и програмата по подразбиране ще се отвори раздел eclipse.platform.) (EN)
  • Новини на IDE Eclipse групи съдържа много информация за всеки, който се интересуват от използване и разширяване на Eclipse. (EN)
  • Разгледайте блога на developerWorks общност. форуми developerWorks или да слушате podcast'y developerWorks, за да сме в крак с най-новите тенденции в технологиите. (EN)