• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 类方法的 EXC_BAD_ACCESS KERN_INVALID_ADDRESS

[复制链接]
菜鸟教程小白 发表于 2022-12-12 16:36:25 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我看到 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



Best Answer-推荐答案


我已经多次看到这种崩溃(堆栈跟踪非常相似,如果不相同的话),发现它与使用新对象设置的非原子属性同时被读取有关。

那个 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap