Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

jdb - Отладчик Java

jdb помогает Вам найти и исправить ошибки в программах языка Java.

РЕЗЮМЕ

jdb [ options ] [ class ] [ arguments ] 
options
Параметры командной строки, как определено ниже.
class
Имя class, чтобы начать отлаживать.
arguments
Параметры, которые передают к main() метод class.

ОПИСАНИЕ

Отладчик Java, jdb, является простым отладчиком командной строки для классов Java. Это - демонстрация Архитектуры Отладчика Платформы Java, которая обеспечивает контроль и отладку локальной или удаленной виртуальной машины Java.

Запуск jdb Сеанса

Есть много способов запустить jdb сеанс. Наиболее часто используемый путь состоит в том, чтобы иметь запуск jdb новая виртуальная машина Java (VM) с основным class приложения, которое будет отлажено. Это делается, заменяя командой jdb для java в командной строке. Например, если основным class Вашего приложения является MyClass, Вы используете следующую команду, чтобы отладить это под JDB:

C:\> jdb MyClass 

Когда запущено этот путь, jdb вызывает второй Java VM с любыми указанными параметрами, загружает указанный class, и останавливает VM прежде, чем выполнить первую инструкцию того class.

Другой способ использовать jdb, присоединяя это к Java VM, который уже работает. VM, который должен быть отлажен с jdb, должен быть запущен со следующих опций. Эти опции загружают незавершенные библиотеки отладки и определяют вид соединения, которое будет сделано.

-agentlib:jdwp=transport=dt_shmem,server=y,suspend=n
      

Например, следующая команда запустит приложение MyClass, и позволит jdb соединяться с этим в более позднее время.

C:\> java -agentlib:jdwp=transport=dt_shmem,address=jdbconn,server=y,suspend=n MyClass
Можно тогда присоединить jdb к VM со следующим commmand:
C:\> jdb -attach jdbconn 
Отметьте, что "MyClass" не определяется в jdb командной строке в этом случае, потому что jdb соединяется с существующим VM вместо того, чтобы запустить новый.

Есть много других способов соединить отладчик с VM, и все они поддерживаются jdb. У Архитектуры Отладчика Платформы Java есть дополнительная документация по этим опциям соединения. Для получения информации о запуске J2SE 1.4.2 или рано VM для использования с jdb видят 1.4.2 документации

Основные jdb Команды

Следующее является списком основных jdb команд. Отладчик Java поддерживает другие команды, которые можно перечислить команду help jdb's использования.
справка, или?
Самая важная jdb команда, help выводит на экран список распознанных команд с кратким описанием.
выполненный
После запуска jdb, и установки любых необходимых контрольных точек, можно использовать эту команду, чтобы запустить выполнение отлаженное приложение. Эта команда доступна только, когда jdb запускает отлаженное приложение (в противоположность присоединению к существующему VM).
продолжение следует
Продолжает выполнение отлаженного приложения после контрольной точки, исключения, или шага.
печать
Java дисплеев возражает и примитивные значения. Для переменных или полей типов примитивов, печатается фактическое значение. Для объектов печатается краткое описание. См. команду dump ниже для того, чтобы получить больше информации об объекте.

ОТМЕТЬТЕ: Чтобы вывести на экран локальные переменные, содержание class, должно быть, было скомпилировано с javac -g опция.

print поддерживает много простых выражений Java включая тех с вызовами метода, например:

дамп
Для примитивных значений эта команда идентична print. Для объектов это печатает текущую стоимость каждого поля, определенного в объекте. Включаются статические и поля экземпляра.

Команда dump поддерживает тот же самый набор выражений как команда print.

потоки
Перечислите потоки, которые являются в настоящий момент рабочими. Для каждого потока его имя и текущий статус печатаются, так же как индексирование, которое может использоваться для других команд, например:
4. (java.lang.Thread)0x1 main      running
В этом примере список веток 4, поток является экземпляром java.lang. Поток, имя потока является "основным", и это является в настоящий момент рабочим,
поток
Выберите поток, чтобы быть текущим потоком. Много jdb команд основаны на установке текущего потока. Поток определяется со списком веток, описанным в команде threads выше.
где
where без параметров выводит стек текущего потока. where all выводит стек всех потоков в группе текущего потока. where threadindex выводит стек указанного потока.

Если текущий поток приостанавливается (или через событие, такое как контрольная точка или посредством команды suspend), локальные переменные и поля могут быть выведены на экран с командами print И dump. Команды up И down, избранные, какой стековый фрейм является текущим.

Контрольные точки

Контрольные точки могут быть установлены в jdb в номерах строки или в первой инструкции метода, например:

Если метод перегружается, следует также определить его типы параметра так, чтобы надлежащий метод мог быть выбран для контрольной точки. Например, "MyClass.myMethod(int,java.lang.String)", или "MyClass.myMethod()".

Команда clear удаляет контрольные точки, используя синтаксис в качестве в " clear MyClass:45". Используя clear или команду без параметра выводит на экран список всех контрольных точек в настоящий момент набор. Команда cont продолжает выполнение.

Продвижение

Команды step совершенствуют выполнение к следующей строке, является ли это в текущем стековом фрейме или вызванном методе. Команда next совершенствует выполнение к следующей строке в текущем стековом фрейме.

Исключения

Когда исключение происходит, для которого нет оператора выгоды нигде в стеке вызовов потока броска, VM обычно печатает трассировку исключения и выходы. Работая под jdb, однако, управление возвращается к jdb при незаконном броске. Можно тогда использовать jdb, чтобы диагностировать причину исключения.

Используйте команду catch, чтобы заставить отлаженное приложение останавливаться в других выданных исключениях, например: "catch java.io.FileNotFoundException" или "catch mypackage.BigTroubleException. Любое исключение, которое является экземпляром specifield class (или подкласса) остановит приложение в точке, где это бросается.

Команда ignore инвертирует эффект предыдущей команды catch.

ОТМЕТЬТЕ: команда ignore не заставляет отлаженный VM игнорировать определенные исключения, только отладчик.

Параметры командной строки

Когда Вы используете jdb вместо средства запуска приложения Java на командной строке, jdb принимает многие из тех же самых опций как команда java, включая -D, -classpath, и -X<option>.

Следующие дополнительные опции принимаются jdb:

- справка
Выводит на экран сообщение справки.
-sourcepath <dir1:dir2:...>
Использует данный путь в поиске исходных файлов в указанном пути. Если эта опция не определяется, путь значения по умолчанию "." используется.
- присоединяют <адресуются>
Присоединяет отладчик к предыдущему выполнению VM использование механизма соединения значения по умолчанию.
- слушают <адресуются>
Ожидает выполнения VM, чтобы соединиться в указанном адресе, используя стандартный соединитель.
-listenany
Ожидает выполнения VM, чтобы соединиться в любом доступном адресе, используя стандартный соединитель.
- запуск
Запускает отлаженное приложение непосредственно после запуска jdb. Эта опция устраняет потребность для того, чтобы использовать команду run. Отлаженное приложение запускается и затем останавливается как раз перед начальным приложением загружается class. В той точке можно установить любые необходимые контрольные точки и использовать cont, чтобы продолжать выполнение.
-listconnectors
Перечислите соединители, доступные в этом VM
- соединяются <имя соединителя>: <name1> = <value1>...
Соединяет с целевым VM использование именованного соединителя с перечисленными значениями аргументов.
-dbgtrace [флаги]
Информация печатных изданий для того, чтобы отладить jdb.
-tclient
Запускает приложение в Java HotSpot (ТМ) VM (Клиент).
-tserver
Запускает приложение в Java HotSpot (ТМ) VM (Сервер).
-Joption
Опция передачи к виртуальной машине Java, используемой, чтобы выполнить jdb. (Опции для виртуальной машины Java приложения передают к команде выполнения.) Например,-J-Xms48m устанавливает память запуска в 48 мегабайтов.

Другие опции поддерживаются для альтернативных механизмов для того, чтобы соединить отладчик и VM, который он должен отладить. У Архитектуры Отладчика Платформы Java есть дополнительная документация по этим альтернативам соединения.

Опции, Переданные Процессу Отлаживаемой программы

-v - многословный [:class|gc|jni]
Включает многословный режим.
-D <имя> = <значение>
Устанавливает системное свойство.
- путь к классу <каталоги, разделенные ":">
Каталоги списков, в которых можно искать классы.
-X <опция>
Нестандартная целевая опция VM

СМ. ТАКЖЕ

javac, java, javah, javap, javadoc.


Oracle и/или его филиалы Авторское право © 1993, 2012, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами