/ vscode-java-debug

Обзор

Облегченный отладчик Java на основе Java Debug Server, который расширяет языковую поддержку для Java от Red Hat. Он позволяет пользователям отлаживать Java-код с помощью Visual Studio Code (VS Code). Вот список функций:

  • Запуск/Присоединение
  • Точки останова/Условные точки останова/Точки журнала
  • Исключения
  • Приостановить и продолжить
  • Шаг входа/выхода/завершения
  • Переменные
  • Callstacks
  • Потоки
  • Консоль отладки
  • Оценка
  • Замена горячего кода

Требования

  • JDK (версия 1.8.0 или новее)
  • VS Code (версия 1.19.0 или новее)
  • Поддержка языков для Java от Red Hat (версия 0.14.0 или новее)

Установить

Откройте VS Code и нажмите F1 или Ctrl + Shift + P , чтобы открыть палитру команд, выберите Установите расширение и введите vscode-java-debug .

Или запустите VS Code Quick Open ( Ctrl + P ), вставьте следующую команду и нажмите ввод.

 ext install vscode-java-debug 

Используйте

  • Запустить VS Code
  • Открыть J ava project (Maven/Gradle/Eclipse)
  • Откройте файл Java, чтобы активировать расширения.
  • Добавьте конфигурации отладки и отредактируйте launch.json
    • Для запуска: укажите mainClass
    • Для присоединения: укажите hostName и порт
  • Нажмите F5

Пожалуйста, также проверьте документацию Language Support for Java by Red Hat, если у вас возникнут проблемы настройка вашего проекта.

Параметры

Запуск

  • mainClass (обязательно) — полное имя класса (например, [имя модуля java/] com.xyz.MainApp) или путь к файлу java записи программы.
  • args — аргументы командной строки, переданные программе . Используйте "$ {command: SpecifyProgramArgs}" для запроса аргументов программы. Он принимает строку или массив строк.
  • sourcePaths — дополнительные исходные каталоги программы. По умолчанию отладчик ищет исходный код в настройках проекта. Этот параметр позволяет отладчику искать исходный код в дополнительных каталогах.
  • modulePaths — пути к модулям для запуска JVM. Если не указан, отладчик автоматически выполнит разрешение из текущего проекта.
  • classPaths — пути к классам для запуска JVM. Если не указан, отладчик автоматически выполнит разрешение из текущего проекта.
  • encoding — параметр file.encoding для JVM . Если не указано иное, будет использоваться UTF-8. Возможные значения можно найти в https://docs.oracle.. com/javase/8/docs/technotes/guides/intl/encoding.doc.html.
  • vmArgs — дополнительные параметры и системные свойства для JVM ( например -Xms -Xmx -D = ), он принимает строку или массив строк.
  • projectName — предпочтительный проект, в котором отладчик ищет классы. В разных проектах могли быть дублированные имена классов. Этот параметр также работает, когда отладчик ищет указанный основной класс при запуске программы. Это необходимо, когда в рабочей области есть несколько проектов Java, иначе оценка выражения и условная точка останова могут не работать.
  • cwd — рабочий каталог программы. По умолчанию используется $ {workspaceFolder} .
  • env — дополнительные переменные среды для программы.
  • stopOnEntry — автоматически приостанавливать выполнение программы после запуска.
  • console — указанная консоль для запуска программы. Если не указано, используйте консоль, указанную пользовательской настройкой java.debug.settings.console .
    • internalConsole — Консоль отладки VS Code (входной поток не поддерживается).
    • IntegratedTerminal — интегрированный терминал VS Code.
    • externalTerminal — внешний терминал, который можно настроить в пользовательских настройках.
  • corretenCommandLine — если у проекта длинный путь к классам или большие аргументы виртуальной машины, командная строка для запуска программы может превышать максимальное ограничение командной строки, разрешенное ОС. Этот элемент конфигурации предоставляет несколько подходов к сокращению командной строки. По умолчанию auto .
    • none — Запустите программу со стандартной командной строкой ‘java [options] classname [args ] ‘.
    • jarmanifest — сгенерируйте параметры пути к классам во временный файл classpath.jar и запустите программу с помощью командной строки’ java -cp classpath.jar classname [args] ‘.
    • argfile — сгенерируйте параметры пути к классам во временный файл аргументов и запустите программу с помощью командной строки’ java @argfile [args ] ‘. Это значение применяется только к Java 9 и выше.
    • auto — автоматическое определение длины командной строки и определение необходимости сокращения командной строки с помощью соответствующего подхода.
  • stepFilters — пропускать указанные классы или методы при переходе по шагам.
    • classNameFilters — [ Устарело — заменено на skipClasses ] Пропускать указанные классы при пошаговом режиме. Имена классов должны быть полностью квалифицированными. Поддерживаются подстановочные знаки.
    • skipClasses — пропускать указанные классы при переходе. Вы можете использовать встроенные переменные, такие как ‘$ JDK’ и ‘$ Libraries’, чтобы пропустить группу классов или добавить конкретное выражение имени класса, например java. *, * .Foo
    • skipSynthetics — пропускать синтетические методы при переходе.
    • skipStaticInitializers — пропускать методы статического инициализатора при переходе.
    • skipConstructors — пропускать методы конструктора при переходе.

Присоединить

  • hostName (обязательно, если не используется processId ) — имя хоста или IP-адрес удаленного отладчика.
  • port (обязательно, если не используется processId ) — порт отладки удаленного отлаживаемого объекта.
  • processId — используйте средство выбора процесса, чтобы выбрать процесс для присоединения, или идентификатор процесса как целое число.
    • $ {command: PickJavaProcess} — используйте средство выбора процесса, чтобы выбрать процесс для присоединения.
    • целочисленный pid — присоединить к указанному локальный процесс.
  • timeout — значение тайм-аута перед повторным подключением в миллисекундах (по умолчанию 30000 мсек).
  • s ourcePaths — дополнительные исходные каталоги программы. По умолчанию отладчик ищет исходный код в настройках проекта. Этот параметр позволяет отладчику искать исходный код в дополнительных каталогах.
  • projectName — предпочтительный проект, в котором отладчик ищет классы. В разных проектах могли быть дублированные имена классов. Это необходимо, когда в рабочей области есть несколько проектов Java, иначе оценка выражения и условная точка останова могут не работать.
  • stepFilters — пропускать указанные классы или методы при переходе по шагам.
    • classNameFilters — [ устарело — заменено на skipClasses ] Пропустить указанные классы при шагании. Имена классов должны быть полностью квалифицированными. Поддерживаются подстановочные знаки.
    • skipClasses — пропускать указанные классы при переходе. Вы можете использовать встроенные переменные, такие как ‘$ JDK’ и ‘$ Libraries’, чтобы пропустить группу классов или добавить конкретное выражение имени класса, например java. *, * .Foo
    • skipSynthetics — пропускать синтетические методы при переходе.
    • skipStaticInitializers — пропускать методы статического инициализатора при переходе.
    • skipConstructors — пропускать методы конструктора при переходе.

Настройки пользователя

  • java.debug.logLevel : минимальный уровень журналы отладчика, отправляемые в VS Code, по умолчанию имеют значение warn .
  • java.debug.settings.showHex : показывать числа в шестнадцатеричном формате в окне просмотра «Переменные», по умолчанию — false .
  • java.debug.settings.showStaticVariables : показывать статические переменные в окне просмотра «Переменные», по умолчанию false .
  • java.debug.settings.showQualifiedNames : отображать полностью определенные имена классов в вьюлете «Переменные», по умолчанию — false .
  • java.debug.settings.showLogicalStructure : показать логическую структуру для классов Collection и Map во вьюлете «Переменные», по умолчанию — true .
  • java.debug.settings.showToString : показать значение ‘toString ()’ для всех классов, которые переопределяют метод ‘toString’ в «Переменных. «viewlet, по умолчанию true .
  • java.debug.settings.maxStringLength : максимальная длина строки, отображаемой в» Variables »или« Debug Console », строка, длина которой превышает эту длину, будет обрезана, по умолчанию — 0 , что означает, что обрезка не выполняется.
  • java.debug.settings.numericPrecision : точность при форматировании удваивается в вьюлете «Переменные» или «Консоль отладки».
  • java.debug.settings. hotCodeReplace : Reloa d измененные классы Java во время отладки, по умолчанию используется manual . Убедитесь, что java.autobuild.enabled не отключен для VSCode Java. См. Вики-страницу для получения дополнительной информации об использовании и ограничениях.
    • manual — щелкните панель инструментов, чтобы применить изменения.
    • auto — автоматически применить изменения после компиляции.
    • never — никогда не применять изменения.
  • java.debug.settings.enableRunDebugCodeLens : включить поставщик объектива кода для кнопок запуска и отладки над основными точками входа, по умолчанию — true .
  • java.debug.settings.forceBuildBeforeLaunch : принудительное создание рабочей области перед запуском java-программы, по умолчанию true .
  • java.debug.settings.onBuildFailureProceed : принудительно продолжить при сбое сборки, по умолчанию false.
  • java.debug.settings.console : указанная консоль для запуска программы Java, по умолчанию IntegratedTerminal . Если вы хотите настроить консоль для определенного сеанса отладки, измените конфигурацию ‘console’ в launch.json.
    • internalConsole — Консоль отладки VS Code (входной поток не поддерживается).
    • IntegratedTerminal — интегрированный терминал VS Code.
    • externalTerminal — Внешний терминал, который можно настроить в настройках пользователя.
  • java.debug.settings.exceptionBreakpoint.skipClasses : пропустите указанные классы при прерывании по исключению. Вы можете использовать встроенные переменные, такие как ‘$ JDK’ и ‘$ Libraries’, чтобы пропустить группу классов или добавить конкретное выражение имени класса, например java. *, * .Foo
  • java.debug.settings.stepping.skipClasses : пропускать указанные классы при переходе. Вы можете использовать встроенные переменные, такие как ‘$ JDK’ и ‘$ Libraries’, чтобы пропустить группу классов или добавить конкретное выражение имени класса, например java. *, * .Foo
  • java.debug.settings.stepping.skipSynthetics : пропускать синтетические методы при переходе.
  • java.debug.settings.stepping.skipStaticInitializers : пропускать статические методы инициализатора при переходе.
  • java.debug.settings.stepping.skipConstructors : пропускать методы конструктора при переходе.
  • java.debug.settings.jdwp.limitOfVariablesPerJdwpRequest : максимальное количество переменных или полей, которые могут быть запрошены в один запрос JDWP. Чем выше значение, тем реже отлаживаемая программа будет запрашиваться при расширении представления переменных. Также большое количество может вызвать тайм-аут запроса JDWP. По умолчанию — 100.
  • java.debug.settings.jdwp.requestTimeout : время ожидания (мс) запроса JDWP, когда отладчик связывается с целевой JVM. По умолчанию 3000.
  • java.debug.settings.vmArgs : аргументы виртуальной машины по умолчанию для запуска программы Java. Например. Используйте ‘-Xmx1G -ea’, чтобы увеличить размер кучи до 1 ГБ и включить утверждения. Если вы хотите настроить аргументы виртуальной машины для определенного сеанса отладки, измените конфигурацию vmArgs в launch.json.
  • java.silentNotification : контролирует, уведомления могут использоваться для сообщения о прогрессе. Если это правда, используйте строку состояния для сообщения о прогрессе. По умолчанию — false.

Совет для профессионалов: в документации Configuration.md представлено множество примеров, демонстрирующих, как использовать эти конфигурации отладки, рекомендуется взять взгляните.

Устранение неполадок

Распространенные ошибки см. в руководстве по устранению неполадок.

Отзывы и вопросы

Вы можете найти полный список проблем в Issue Tracker. Вы можете сообщить об ошибке или предложить функцию и принять участие в работе сообщества

License

Это расширение находится под лицензией MIT License.

Данные/Телеметрия

VS Code собирает данные об использовании и отправляет их в Microsoft, чтобы помочь улучшить наши продукты и услуги. Прочтите наше заявление о конфиденциальности, чтобы узнать больше. Если вы не хотите отправлять данные об использовании в Microsoft, вы можете установить для параметра telemetry.enableTelemetry значение false . Узнайте больше в нашем FAQ.

Оцените статью
Botgadget.ru
Добавить комментарий