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

jdb - Отладчик Java

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

РЕЗЮМЕ

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

ОПИСАНИЕ

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

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

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

 % jdb MyClass 

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

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

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

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

 % java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n MyClass

Можно тогда присоединить jdb к VM со следующим commmand:

 % jdb -attach 8000 

Отметьте, что "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 ниже для того, чтобы получить больше информации об объекте.

ОТМЕТЬТЕ: Чтобы вывести на экран локальные переменные, содержание класса, должно быть, было скомпилировано с 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 класса (или подкласса) остановит приложение в точке, где это бросается.

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

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

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

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

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

- справка
Выводит на экран сообщение справки.
-sourcepath <dir1:dir2:...>
Использует данный путь в поиске исходных файлов в указанном пути. Если эта опция не определяется, путь по умолчанию "." используется.
- присоединение <адрес>
Присоединяет отладчик к предыдущему выполнению VM использование механизма соединения по умолчанию.
- слушают <адресуются>
Ожидает выполнения VM, чтобы соединиться в указанном адресе, используя стандартный соединитель.
-listenany
Ожидает выполнения VM, чтобы соединиться в любом доступном адресе, используя стандартный соединитель.
- запуск
Запускает отлаженное приложение непосредственно после запуска jdb. Эта опция устраняет потребность для того, чтобы использовать команду run. Отлаженное приложение запускается и затем останавливается непосредственно перед тем, как начальный класс приложений загружается. В той точке можно установить любые необходимые точки останова и использовать 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, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами