【问题标题】:iphone weird crash on device but not seen in simulatoriphone在设备上奇怪的崩溃,但在模拟器中没有看到
【发布时间】:2010-02-09 06:21:32
【问题描述】:

我尝试在设备上安装并运行我的一个应用程序。在模拟器上,它工作正常。但是一旦在设备上,它就会以某种方式崩溃。我试图调试,但我无法在那里得到任何东西。 这是调试器控制台显示的内容..有人可以帮我解决这个问题..: 这是调试器日志:

Program received signal EXC_BAD_ACCESS, Could not access memory.`
`Reason: KERN_PROTECTION_FAILURE at address: 0x00000000`
`[Switching to thread 12291]`
`0x327083e0 in _objc_selopt_data ()`
`Program received signal:  “EXC_BAD_ACCESS”.`

`Unable to disassemble _objc_selopt_data.`
(gdb) bt`
`#0  0x327083e0 in _objc_selopt_data ()`
`#1  0x32fb93c0 in WebCore::FrameLoader::detachFromParent ()`
`#2  0x303e1aec in -[WebView(WebPrivate) _close] ()`
`#3  0x303e19d8 in -[WebView close] ()`
`#4  0x303e1940 in -[WebView dealloc] ()`
`#5  0x32d86640 in -[NSObject release] ()`
`#6  0x32f4a294 in WebCoreObjCDeallocOnWebThreadImpl ()`
`#7  0x32f8b9c4 in HandleWebThreadReleaseSource ()`
`#8  0x32da43a6 in CFRunLoopRunSpecific ()`
`#9  0x32da3c1e in CFRunLoopRunInMode ()`
`#10 0x32f486f8 in RunWebThread ()`
`#11 0x327587b8 in _pthread_body ()`
`#12 0x00000000 in ?? ()`
`(gdb) `

【问题讨论】:

  • 您介意重新格式化您的回溯日志吗?很难读。
  • 对不起。我无法让代码突出显示在我的机器上正常工作

标签: iphone ios-simulator


【解决方案1】:

你是在删除一个已经被销毁的对象吗?

【讨论】:

  • 你能告诉我是否有任何工具可以在现有的 iphone 工具中找到吗?
  • 我不认为他正在删除一个已经被破坏的对象。如果是这种情况,它也应该在模拟器中崩溃。但在他的情况下,它没有。
【解决方案2】:

我不确定这是否相关,但我曾经遇到过类似的问题。 iPhone 调用内存警告,因为它用完了 RAM。因此,有时,iPhone 会刷新缓存的内存,因此它可能会导致某些视图或对象在不知不觉中被释放/释放,这会引起您的关注。 iPhone 模拟器永远不会调用内存警告,但在真机上,会发生这种情况。

我不确定是否是这种情况,但请尝试这样做:在 iPhone 模拟器上,有一个“模拟内存警告”选项。尝试在模拟器上使用您的应用程序,偶尔尝试“模拟内存警告”。如果它崩溃了,那么我们可以得出结论,就是这种情况。

先测试一下是不是这样。

或者,如果你想测试真正的iPhone何时调用“内存警告”,尝试将NSLog或printf放在以下方法中:

- (void)didReceiveMemoryWarning {
  [super didReceiveMemoryWarning]; 
}

【讨论】:

  • 谢谢..我会尝试这样做,并会让你知道结果。
猜你喜欢
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多