APP 的健壮运行离不开错误监控,而其中 native 库的 crash 最麻烦,这也是混合语言没有官方推荐单一语言开发简便的原因之一。 最近 Everkm Note 在集成测试阶段,就遇到 crash 问题,好在经过简单的代码排查,基本可以猜测到原因,问题发生在 rust + bind(libssh) 上面,费了点功夫就修复了(这里还是忍不住夸赞下 Rust 的优秀,什么空指针异常,线程安全,都能很好的规避)。但如果是在生产环境,那就需要许多额外工作才能定位,初步想到的有
此次未来得及深入,待日后继续深究。
Ref:
std::backtrace::Backtrace
vs backtrace::Backtrace
on Android · Issue #121033 · rust-lang/rust