gpt4 book ai didi

ios - 类方法的 EXC_BAD_ACCESS KERN_INVALID_ADDRESS

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:57:11 27 4
gpt4 key购买 nike

我看到类方法的 EXC_BAD_ACCESS KERN_INVALID_ADDRESS

据我所知,我不应该在类/静态方法中看到这一点。

我错过了什么吗?

堆栈跟踪:

Thread : Crashed: com.apple.root.user-initiated-qos

0 libobjc.A.dylib 0x0000000196eac0b4 objc_retain + 20

1 $APP_NAME 0x00000001002611a8 +[$CLASS_NAME $METHOD_NAME:] ($CLASS_NAME.m:590)

2 libdispatch.dylib 0x0000000197511994 _dispatch_call_block_and_release + 24

3 libdispatch.dylib 0x0000000197511954 _dispatch_client_callout + 16

4 libdispatch.dylib 0x000000019751e780 _dispatch_root_queue_drain + 1848

5 libdispatch.dylib 0x000000019751fc4c _dispatch_worker_thread3 + 108

6 libsystem_pthread.dylib 0x00000001976f121c _pthread_wqthread + 816

7 libsystem_pthread.dylib 0x00000001976f0ee0 start_wqthread + 4

最佳答案

我已经看到几次这种崩溃(非常相似,如果不是完全相同的堆栈跟踪),并且发现它与一个非原子属性有关,该属性被设置为一个新对象,同时被读取。

objc_retain +20 指令原来是对正在读取的对象的 isa 属性的调用——但此时对象已经被释放,并且isa 指针更改为错误地址

按照 Mike Ash 的这篇博文,我能够调试我的问题: https://www.mikeash.com/pyblog/tales-from-the-crash-mines-issue-1.html

我强烈建议通读整篇文章——它涉及到使用反汇编程序进行调试,但在很多情况下这绝对是我们的救命稻草

编辑:请注意,我绝对没有 50% 的把握确定这是您的问题,但我希望我的轶事经历可以为您节省一些时间。我知道我花了很多工作周来调试看起来像这样的问题,但我仍然没有 100%

关于ios - 类方法的 EXC_BAD_ACCESS KERN_INVALID_ADDRESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33108420/

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