菜鸟教程小白 发表于 2022-12-12 16:36:25

ios - 类方法的 EXC_BAD_ACCESS KERN_INVALID_ADDRESS


                                            <p><p>我看到 <code>EXC_BAD_ACCESS KERN_INVALID_ADDRESS</code> 用于类方法。</p>
<p>据我了解,我不应该在类/静态方法中看到这种情况。</p>
<p>我错过了什么吗?</p>
<p><strong>堆栈跟踪:</strong></p>
<blockquote>
<p>Thread : Crashed: com.apple.root.user-initiated-qos</p>
<p>0libobjc.A.dylib                0x0000000196eac0b4 objc_retain + 20</p>
<p>1$APP_NAME                     0x00000001002611a8 +[$CLASS_NAME $METHOD_NAME:] ($CLASS_NAME.m:590)</p>
<p>2libdispatch.dylib            0x0000000197511994 _dispatch_call_block_and_release + 24</p>
<p>3libdispatch.dylib            0x0000000197511954 _dispatch_client_callout + 16</p>
<p>4libdispatch.dylib            0x000000019751e780 _dispatch_root_queue_drain + 1848</p>
<p>5libdispatch.dylib            0x000000019751fc4c _dispatch_worker_thread3 + 108</p>
<p>6libsystem_pthread.dylib      0x00000001976f121c _pthread_wqthread + 816</p>
<p>7libsystem_pthread.dylib      0x00000001976f0ee0 start_wqthread + 4</p>
</blockquote></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我已经多次看到这种崩溃(堆栈跟踪非常相似,如果不相同的话),发现它与使用新对象设置的非原子属性同时被读取有关。</p>

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

<p>我可以通过关注 Mike Ash 的这篇博文来调试我的问题:
<a href="https://www.mikeash.com/pyblog/tales-from-the-crash-mines-issue-1.html" rel="noreferrer noopener nofollow">https://www.mikeash.com/pyblog/tales-from-the-crash-mines-issue-1.html</a> </p>

<p>我强烈建议通读整篇文章——它涉及使用反汇编程序进行调试,但它在多个场合对我们来说绝对是救命稻草</p>

<p>编辑:请注意,我绝对不是 50% 确定这是您的问题,但我希望我的轶事经验可以为您节省一些时间。我知道我已经花了很多周的工作来调试看起来像这样的问题,但我仍然没有 100% </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 类方法的 EXC_BAD_ACCESS KERN_INVALID_ADDRESS,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/33108420/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/33108420/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 类方法的 EXC_BAD_ACCESS KERN_INVALID_ADDRESS