在我们的崩溃跟踪应用程序 bugsnag 中,我看到越来越多的崩溃与“SIGSEGV:分段违规(无效内存引用)”有关。它们似乎只发生在 Android 上,并且堆栈跟踪中充满了 libhermes.so。
这个堆栈跟踪什么也没告诉我,我还没有发现任何存在相同问题的问题。有谁知道在哪里寻找根本原因?hermes变成SIGSEGV是javascript错误吗?爱马仕的错误?我们使用的其中一个库发生崩溃?
来自其中一次崩溃的堆栈跟踪。
SIGSEGV Segmentation violation (invalid memory reference)
/data/app/com.wolt.courierapp-poHmOlYLJ3-nWo0m_w4kVw==/lib/arm64/libhermes.so:116080 facebook::hermes::detail::hermesFatalErrorHandler(void*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, bool)
/data/app/.../lib/arm64/libhermes.so:1222852 0x701af048c4
/data/app/.../lib/arm64/libhermes.so:1222588 0x701af047bc
/data/app/.../lib/arm64/libhermes.so:1056428 0x701aedbeac
/data/app/.../lib/arm64/libhermes.so:182328 0x701ae06838
/data/app/.../lib/arm64/libhermes.so:523104 0x701ae59b60
/data/app/.../lib/arm64/libhermes.so:298092 0x701ae22c6c
/data/app/.../lib/arm64/libhermes.so:564832 0x701ae63e60
/data/app/.../lib/arm64/libhermes.so:216036 0x701ae0ebe4
/data/app/.../lib/arm64/libhermes.so:568480 0x701ae64ca0
/data/app/.../lib/arm64/libhermes.so:578128 0x701ae67250
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:539976 0x701ae5dd48
/data/app/.../lib/arm64/libhermes.so:662544 0x701ae7bc10
/data/app/.../lib/arm64/libhermes.so:723864 0x701ae8ab98
/data/app/.../lib/arm64/libhermes.so:724172 0x701ae8accc
/data/app/.../lib/arm64/libhermes.so:724136 0x701ae8aca8
/data/app/.../lib/arm64/libhermes.so:645300 0x701ae778b4
/data/app/.../lib/arm64/libhermes.so:543328 0x701ae5ea60
/data/app/.../lib/arm64/libhermes.so:581332 0x701ae67ed4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:541776 0x701ae5e450
/data/app/.../lib/arm64/libhermes.so:581364 0x701ae67ef4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:541776 0x701ae5e450
/data/app/.../lib/arm64/libhermes.so:581364 0x701ae67ef4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:541776 0x701ae5e450
/data/app/.../lib/arm64/libhermes.so:581364 0x701ae67ef4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:413044 0x701ae3ed74
/data/app/.../lib/arm64/libhermes.so:543328 0x701ae5ea60
/data/app/.../lib/arm64/libhermes.so:581332 0x701ae67ed4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:413044 0x701ae3ed74
/data/app/.../lib/arm64/libhermes.so:543328 0x701ae5ea60
/data/app/.../lib/arm64/libhermes.so:581332 0x701ae67ed4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:541776 0x701ae5e450
/data/app/.../lib/arm64/libhermes.so:581364 0x701ae67ef4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:541776 0x701ae5e450
/data/app/.../lib/arm64/libhermes.so:581364 0x701ae67ef4
/data/app/.../lib/arm64/libhermes.so:544160 0x701ae5eda0
/data/app/.../lib/arm64/libhermes.so:541776 0x701ae5e450
/data/app/.../lib/arm64/libhermes.so:147152 facebook::hermes::HermesRuntimeImpl::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)
/data/app/.../lib/arm64/libhermes-executor-release.so:173936 facebook::jsi::Value facebook::jsi::Function::call<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, facebook::jsi::Value>(facebook::jsi::Runtime&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, facebook::jsi::Value&&) const
/data/app/.../lib/arm64/libhermes-executor-release.so:173516 0x701a4765cc
/data/app/.../lib/arm64/libhermes-executor-release.so:154820 void std::__ndk1::__invoke_void_return_wrapper<void>::__call<void (*&)(std::__ndk1::function<void ()> const&, std::__ndk1::function<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > ()>), std::__ndk1::function<void ()> const&, std::__ndk1::function<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > ()> >(void (*&)(std::__ndk1::function<void ()> const&, std::__ndk1::function<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > ()>), std::__ndk1::function<void ()> const&, std::__ndk1::function<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > ()>&&)
/data/app/.../lib/arm64/libhermes-executor-release.so:164992 facebook::react::JSIExecutor::callFunction(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, folly::dynamic const&)
/data/app/.../lib/arm64/libreactnativejni.so:683496 0x701a639de8
/data/app/.../lib/arm64/libreactnativejni.so:688656 0x701a63b210
/data/app/.../lib/arm64/libreactnativejni.so:439588 0x701a5fe524
/data/app/.../lib/arm64/libreactnativejni.so:372684 facebook::jni::detail::MethodWrapper<void (facebook::react::JNativeRunnable::*)(), &facebook::react::JNativeRunnable::run, facebook::react::JNativeRunnable, void>::dispatch(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*>)
/data/app/.../lib/arm64/libreactnativejni.so:372552
unknown 0x3850766e45494e4a```