Почему выполнение отладки в 0.13.7 завершается с ошибкой "не удалось найти библиотеку агента jdwp: транспорт по пути к библиотеке"?
после обновления от 0.13.6
to 0.13.7
Я не могу отлаживать с SBT
.
Он устанавливается с помощью Homebrew
. Я попытался переустановить его, brew doctor
ничего не показывает.
Я не менял/переустанавливал Java
между SBT
обновление.
lgr$ sbt -v -jvm-debug 5005 "project webapp" run
[process_args] java_version = '1.8.0_25'
# Executing command line:
java
-Xms1024m
-Xmx1024m
-XX:ReservedCodeCacheSize=128m
-XX:MaxMetaspaceSize=256m
-agentlib:jdwp:transport=dt_socket,server=y,suspend=n,address=5005
-jar
/usr/local/Cellar/sbt/0.13.7/libexec/sbt-launch.jar
"project webapp"
run
Error occurred during initialization of VM
Could not find agent library jdwp:transport on the library path, with error: dlopen(libjdwp:transport.dylib, 1): image not found
я не уверен, является ли SBT
отсутствует какая-то библиотека, или brew
формула не установлена должным образом.
Я буду полезен для любой идеи, как это исправить.
переустановить Java
, не помощь.
решение я скачал SBT 0.13.6
и он работает без проблем, поэтому я начинаю рассматривать это как ошибку sbt. Может ли кто-нибудь помочь прояснить, если это так?
4 ответов
к piggyback на ответ Евгения выше, так как исправление находится в сценарии bash, довольно легко применить исправление из https://github.com/sbt/sbt-launcher-package/pull/85/files вручную. Просто отредактируйте bin/sbt-launch-lib.bash
для этого:
addJava "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address="
вместо этого:
addJava "-agentlib:jdwp:transport=dt_socket,server=y,suspend=n,address="
(виду :
не =
между jdwp
и transport
).
Он устанавливается с помощью Homebrew.
Homebrew install санкционирован проектом sbt как рекомендуемый способ установки на Mac, но мы (я один из разработчиков sbt) в настоящее время не контролируем его. Однако у нас есть официальный пакет sbt / sbt-launcher-пакет, и последний раз я проверял Homebrew также использует его.
смотрим git blame соответствующей части скрипта, похоже, что опция отладки была "исправлено" в sbt / sbt-launcher-пакет#83:
в sbt-launch-lib.опция bash, - Xdebug используется для отладки. Мы должны использовать опцию-agentlib для Java 5+.
возможно, ваша проблема должна отслеживаться как ошибка в sbt/sbt-launcher-package.
в моем случае исправление bash не помогло, но работает от bash как:
export SBT_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
sbt
помогло. Это от здесь.