gpt4 book ai didi

ios - Swift 中的 Malloc 错误

转载 作者:行者123 更新时间:2023-11-28 10:16:52 25 4
gpt4 key购买 nike

我的代码中突然出现奇怪的 Malloc 错误,例如:

malloc: *** error for object 0x7fbdc8daa2f8: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug

看起来它们是随机的,只是在我设置断点时出现在不同的地方。我在 XCode 8.1 上。 swift 3.0。有人遇到过这个吗?

我设置了断点,我得到了这个:

libsystem_malloc.dylib`malloc_error_break:
-> 0x112fa4760 <+0>: pushq %rbp
0x112fa4761 <+1>: movq %rsp, %rbp
0x112fa4764 <+4>: nop
0x112fa4765 <+5>: nopl (%rax)
0x112fa4769 <+9>: popq %rbp
0x112fa476a <+10>: retq

最佳答案

此错误的最常见原因是线程违规。例如,如果一个线程对一个对象执行最终释放并开始释放它,然后另一个线程具有 unowned (Swift) 或 assign (ObjC) 引用对象修改它,这将触发此错误。 (如果所有引用都是 strongweak,应该不可能得到这个错误,因为在前一种情况下对象不可能被释放,和 weak 引用在后一种情况下是线程安全的。)

这当然有可能暴露了最新 SDK 中的错误(因此您应该打开雷达),但更典型的情况是您的代码中的错误是时序变化导致的。如前所述,您应该在 malloc_error_break 上设置一个符号断点,以找出有问题的对象。

关于ios - Swift 中的 Malloc 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40424415/

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