为什么在0.13.7中执行调试失败并且“找不到代理库jdwp:库路径上的传输”?

时间:2014-11-28 12:34:08

标签: debugging sbt

0.13.6更新为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 个答案:

答案 0 :(得分:11)

为了搭载Eugene上面的答案,由于修复是在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=$1"

而不是:

addJava "-agentlib:jdwp:transport=dt_socket,server=y,suspend=n,address=$1"

(请注意:=之间的jdwp而非transport

答案 1 :(得分:2)

  

使用Homebrew安装。

Homebrew安装被sbt项目批准作为在Mac上安装的推荐方式,但我们(我是其中一个开发人员)目前无法控制它。不过,我们有官方套餐sbt/sbt-launcher-package,最后我检查了Homebrew is also using it

查看脚本相关部分的git blame,似乎调试选项在sbt/sbt-launcher-package#83中已“修复”:

  

在sbt-launch-lib.bash中,-Xdebug选项用于调试。我们应该为Java 5 +使用-agentlib选项。

也许您的问题应该作为sbt / sbt-launcher-package中的错误进行跟踪。

答案 2 :(得分:1)

问题已在0.13.8版本中修复。

答案 3 :(得分:0)

在我的情况下,bash修复没有帮助,但是从bash运行:

export SBT_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005" 
sbt

帮助。它来自here