你正在使用哪个版本的Go(go version
)?
$ go version
1.19.4
这个问题在最新版本中是否可以复现?
目前无法用最新版本的GO进行验证。
你正在使用什么操作系统和处理器架构(go env
)?
问题在iOS上随机出现(GOOS=ios GOARCH=arm64)
你做了什么?
我们收到了一份关于线程在iOS上有EXC_BAD_ACCESS的崩溃报告,我们在实验室里无法重现崩溃,但经过几次测试后,我们认为这种行为不是由框架本身引起的,而是由GO堆栈中的其他问题引起的,我们无法弄清楚。堆栈跟踪报告了以下信息:
Exception Type: EXC_BAD_ACCESS (SIGABRT)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000038
Exception Codes: 0x0000000000000001, 0x0000000000000038
VM Region Info: 0x38 is not in any region. Bytes before following region: 68719476680
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
UNUSED SPACE AT START
--->
commpage (reserved) 1000000000-7000000000 [384.0G] ---/--- SM=NUL ...(unallocated)
Triggered by Thread: 2
Thread 2 Crashed:
0 libsystem_kernel.dylib 0x00000001c95c2558 __pthread_kill + 8 (:-1)
1 libsystem_pthread.dylib 0x00000001ea403118 pthread_kill + 268 (pthread.c:1670)
2 libsystem_c.dylib 0x0000000191ba754c raise + 32 (raise.c:30)
3 libname 0x00000001064b44c4 _cgo_topofstack + 5092
4 libname 0x00000001064b2fd8 CMAC_resume + 501884
我们的所有堆栈跟踪都与此相同,所有人都试图访问0x0000000000000038,并且线程上的指令也相同。相同的设备并不总是会崩溃,这使得跟踪变得更加困难。
你期望看到什么?
没有崩溃或与我们的库相关的一些信息
你看到了什么?
在我们的用户群中随机出现应用程序崩溃
5条答案
按热度按时间cedebl8k1#
@hyangah
@golang/runtime
dxxyhpgq2#
你好,
有人能帮我们吗?崩溃次数在增加,看起来像是与iOS 16.5及更高版本有关。
谢谢
翻译结果:你好,
有人能帮助我们吗?崩溃次数正在增加,看起来像是与iOS 16.5及更高版本有关。
谢谢
wz8daaqr3#
请分享更多关于您的代码和失败的信息。您的代码是如何进行cgo调用的?失败是持续的还是间歇性的?您可以尝试使用Go 1.21.0版本构建它吗?谢谢。
um6iljoc4#
你好cherrymui,感谢你的支持:
你能分享一下关于你的代码和失败的更多信息吗?
是的,如果你能缩小这个请求的范围,我可以尝试分享更多关于它的信息。
你的代码是如何进行cgo调用的?
你能缩小你的请求范围吗?因为我不明白你想要找什么。谢谢!
这个失败是持续性的还是间歇性的?
问题不是持续性的(同一个用户再次启动应用程序时不会出现崩溃)。但是同一个用户可能会再次遇到相同的崩溃。
你能尝试使用Go 1.21.0的新版本构建它吗?
在9月底之前更难做到这一点。
这看起来像是程序(Go运行时,或者不是)故意在已经处于不良状态时崩溃,比如在一个非Go线程上接收到一个未处理的信号。
所以这意味着GO正在拦截来自应用程序其他部分生成的一些系统信号吗?你能给我提供一些关于这个理论的更多信息吗?此外,这种行为是否可以以某种方式改变?
zy1mlcev5#
你好,cherrymui,你有时间查看我之前的回复吗?你能给我一些反馈吗?
谢谢!