【发布时间】:2021-01-15 15:14:45
【问题描述】:
我已经使用 Quarkus/Graal 成功构建了一个原生镜像,我可以在终端中运行它(还没有容器)。但是,它会因“分段错误(核心转储)”消息而崩溃。如何获取有关错误的更多信息?是否有标志要传递给本机可执行文件或在构建映像时?
我正在使用 GraalVM 版本 20.2.0(Java 版本 11.0.8)
非常感谢任何帮助。
谢谢。
【问题讨论】:
我已经使用 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 团队报告。
【讨论】:
这是我的代码中的一个条件导致了这种行为。在我修复代码之后,原生图像现在就像一个魅力。感谢您的帮助。
【讨论】: