我已经使用 Quarkus/Graal 成功构建了一个本机镜像,我可以在终端中运行它(还没有容器)。但是,它崩溃并显示“分段错误(核心转储)”消息。我如何获得有关该错误的更多信息?是否有标志要传递给本机可执行文件或构建映像时?
我正在使用 GraalVM 版本 20.2.0(Java 版本 11.0.8)
非常感谢任何帮助。
谢谢。
这可能是本机图像实现中的一个错误。请向 GraalVM 团队报告:github.com/oracle/graal。
您还可以尝试调试可执行文件:https://github.com/oracle/graal/blob/master/substratevm/DebugInfo.md
您还可以通过传递标志
-H:Optimize=N
来构建具有不同优化级别的本机映像,其中 N 为 0, 1, 2。也许行为会有所不同 - 这表明编译器中存在错误。
构建原生镜像时,您是否使用类似
--report-unsupported-elements-at-runtime
之类的东西?如果是,请尝试将其删除,也许它会告诉您可能出了什么问题。与--allow-incomplete-classpath
一样吗?
一般来说,最好是向 GraalVM 团队报告。
我的代码中的一个条件导致了这种行为。修复代码后,原生图像现在就像魅力一样。感谢您的帮助。
对我来说,
SIGSEGV
错误会随机出现,而且只是有时出现。我通过停止系统上的防病毒应用程序完全解决了这个问题。