java 内存溢出 调试_java - 您可以远程调试在Graal JVM中运行的Graal.js脚本吗? - 堆栈内存溢出...

事实证明,对于远程连接,Graal默认情况下希望使用安全的调试通道,因此您需要通过-Dpolyglot.inspect.Secure=false禁用该通道,或者使用-Dpolyglot.inspect.KeyStore* 开关正确配置。

就我而言,不需要安全性,因此我的配置变为:

java -Dpolyglot.inspect=exampleHost:9229 -Dpolyglot.inspect.Secure=false -jar app.jar

我只需要将exampleHost:9229添加到chrome:// inspect /#devices->配置...

并且可以进行远程调试!

TL; DR

这是我发现配置问题的原因的方法。 在其他类似情况下可能会很有用。

我调试了有问题的Java程序,以查看ScriptEngineManager发生了什么问题,并在包含消息“ ScriptEngineManager provider.next():”的行中的javax.script.ScriptEngineManager#initEngines中放置了一个断点。 事实证明,此类具有一个内部DEBUG常量,该常量被硬编码为false,从而防止将任何堆栈跟踪信息打印到stderr。 我将异常手动转储到stderr:

oracle.truffle.js.scriptengine.GraalJSEngineFactory could not be instantiated

at java.util.ServiceLoader.fail(ServiceLoader.java:232)

at java.util.ServiceLoader.access$100(ServiceLoader.java:185)

at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)

at java.util.ServiceLoader$LazyIterator.access$700(ServiceLoader.java:323)

at java.util.ServiceLoader$LazyIterator$2.run(ServiceLoader.java:407)

at java.security.AccessController.doPrivileged(Native Method)

at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:409)

at java.util.ServiceLoader$1.next(ServiceLoader.java:480)

at javax.script.ScriptEngineManager.initEngines(ScriptEngineManager.java:122)

at javax.script.ScriptEngineManager.init(ScriptEngineManager.java:84)

at javax.script.ScriptEngineManager.(ScriptEngineManager.java:61)

...

Caused by: org.graalvm.polyglot.PolyglotException: Starting inspector on exampleHost:9229 failed: Use options to specify the keystore

at org.graalvm.polyglot.Engine$Builder.build(Engine.java:506)

at com.oracle.truffle.js.scriptengine.GraalJSEngineFactory.(GraalJSEngineFactory.java:95)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at java.lang.Class.newInstance(Class.java:442)

at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)

... 17 more

现在,这只是找出如何设置或禁用所需的密钥库的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值