gpt4 book ai didi

Java JNI stackfall 预防

转载 作者:行者123 更新时间:2023-12-01 19:24:55 26 4
gpt4 key购买 nike

我使用 Java JNI Gdal 。有一些服务器端应用程序构建在 JNI 绑定(bind)之上。如果 JNI 部分出现错误,整个 JVM 堆栈就会崩溃。

测试 C/C++ 库不包含会导致 JVM stackfall 的 fatal error 的最佳方法是什么?干净地处理确实出现的错误的最佳实践是什么?

最佳答案

我想到两件事:

1).如果您有可能将 C++ 代码作为单独的进程运行(使用任何 RPC 技术进行通信),那么您就可以避免这个问题,尽管是以牺牲性能为代价的。

2).您受到 C++/JNI 开发人员的摆布。我遇到的大多数问题都出在 JNI 层的“皮肤”上。也就是说,我有一个相当稳定的现有库,我将其包装在 JNI 中。如果我无意中将空指针传递给现有代码,库会感到不安,并且如果我未能检查响应中的空值,我也可能会遇到问题。因此,我们投入了大量精力来 sanitizer 包装层。在任何可能出现意外结果的地方,我们都添加了检查。

当然,如果整个库都是新的,那么生活会更困难 - 最后你只需要生成健壮的代码。

关于Java JNI stackfall 预防,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1721560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com