Spec-Zone .ru
спецификации, руководства, описания, API
|
jdb помогает Вам найти и исправить ошибки в программах языка Java.
jdb [ options ] [ class ] [ arguments ]
options
class
arguments
main()
метод class
.Отладчик Java, jdb, является простым отладчиком командной строки для классов Java. Это - демонстрация Архитектуры Отладчика Платформы Java, которая обеспечивает контроль и отладку локальной или удаленной виртуальной машины Java.
Есть много способов запустить jdb сеанс. Наиболее часто используемый путь состоит в том, чтобы иметь запуск jdb новая виртуальная машина Java (VM) с основным class приложения, которое будет отлажено. Это делается, заменяя командой jdb для java в командной строке. Например, если основным class Вашего приложения является MyClass, Вы используете следующую команду, чтобы отладить это под JDB:
% jdb MyClass
Когда запущено этот путь, jdb вызывает второй Java VM с любыми указанными параметрами, загружает указанный class, и останавливает VM прежде, чем выполнить первую инструкцию того class.
Другой способ использовать 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 видят
Следующее является списком основных jdb команд. Отладчик Java поддерживает другие команды, которые можно перечислить команду help jdb's использования.
4. (java.lang.Thread)0x1 main runningВ этом примере список веток 4, поток является экземпляром java.lang. Поток, имя потока является "основным", и это является в настоящий момент рабочим,
where
без параметров выводит стек текущего потока. where all
выводит стек всех потоков в группе текущего потока. where
threadindex выводит стек указанного потока.Контрольные точки могут быть установлены в 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:
Другие опции поддерживаются для альтернативных механизмов для того, чтобы соединить отладчик и VM, который он должен отладить. У Архитектуры Отладчика Платформы Java есть дополнительная документация по этим альтернативам соединения.
javac, java, javah, javap, javadoc.