【发布时间】:2019-05-12 02:31:49
【问题描述】:
我正在升级一个旧项目以在新版本的 iOS 上运行,但我在启动屏幕上不断出现崩溃并出现以下错误:
错误:0x7c37d3000 的内存读取失败
和
线程 4:EXC_BAD_ACCESS(代码=257,地址=0x1c7c37d309d)
为了找出它在代码中的位置,我启用了僵尸对象,并为所有异常设置了一个断点。当应用程序崩溃时,断点不会突出显示一段代码,而是这样做:
断点导航器图片
它说明了libobjc.A.dylib 和libc++abi.dylib,所以我假设这不是我的代码的一部分?此外,单击断点不会像人们通常所说的那样将我带到代码中的位置。
这是 lldb 控制台中 bt 的结果(回溯):
* thread #4, stop reason = EXC_BAD_ACCESS (code=257, address=0x1c7c37d309d)
* frame #0: 0x00000007c37d309d
我从这个回溯中读到,你可以确定一个方法或文件等,但这个输出似乎没有。
如何确定此错误来自代码的确切位置?让我知道我是否应该提供其他任何东西,因为我是这个网站的新手。谢谢!
编辑:我可能应该提到应用程序在模拟器上崩溃:Error 这是该错误的回溯:
> * thread #3, stop reason = signal SIGABRT * frame #0: 0x0000000107d5cb66 libsystem_kernel.dylib`__pthread_kill + 10
> frame #1: 0x0000000107d96080 libsystem_pthread.dylib`pthread_kill + 333
> frame #2: 0x00000001012b7405 libclang_rt.tsan_iossim_dynamic.dylib`wrap_pthread_kill + 325
> frame #3: 0x0000000107b09c45 libsystem_c.dylib`abort + 127
> frame #4: 0x00000001012b669c libclang_rt.tsan_iossim_dynamic.dylib`wrap_abort + 108
> frame #5: 0x00000001008d5c0f GiFmojo`inittls + 431
> frame #6: 0x00000001008d5a32 GiFmojo`runtime.etext + 98
> frame #7: 0x00000001006fe19c GiFmojo`runtime.rt0_go + 140
> frame #8: 0x0000000107d93661 libsystem_pthread.dylib`_pthread_body + 340
> frame #9: 0x0000000107d9350d libsystem_pthread.dylib`_pthread_start + 377
> frame #10: 0x0000000107d92bf9 libsystem_pthread.dylib`thread_start + 13
崩溃原因的区别非常令人困惑。
编辑:这是调试导航器的屏幕截图:
编辑:我禁用了僵尸对象,它现在在线程 4 和线程 5 之间交替,出现错误:
错误:0xaeb3f7600 的内存读取失败
线程 5:EXC_BAD_ACCESS(代码=257,地址=0x20aeb3f7693)
对于线程 5。这是有原因的吗?
【问题讨论】:
-
你搞定了吗?
-
不,很遗憾。还没有。
-
你在项目中添加了
libz.tbl库吗? -
不,我不这么认为...那是什么?
标签: ios objective-c xcode exc-bad-access backtrace