iPhone 模拟器卡住整个操作系统

标签 iphone xcode ios ios-simulator

我有一个 super 奇怪的问题。每次我在 iPhone 模拟器中运行一段特定的代码时,我的整个 Mac 都会卡住:我无法关闭模拟器或任何其他应用程序,也无法打开任何应用程序。最糟糕的是,我无法关机。我必须按住电源按钮手动强制关机。

我在 15"MacBook Pro 上运行,唯一运行的是 Xcode 和 iPhone 模拟器。我使用 Activity Monitor 关闭后台运行的任何不必要的应用程序。我还使用 OnyX 进行清理我的系统。

我正在使用 Xcode 3.2.4 和 iOS 3.2(iPad 模拟器)。

起初我怀疑这是处理器问题 - 所以我在运行 Activity Monitor 时运行了相同的代码以引发崩溃。卡住时我仍然可以在应用程序之间切换,我只是无法打开/关闭任何应用程序或使用 Xcode 或 iPhone 模拟器做任何事情。事件监视器报告说有足够的空间进行更多处理,所以不可能。我的系统内存不足。如果我遗漏了任何可能有助于调试的内容,请发表评论,我会找到相关信息。我想尽快解决这个问题。

有问题的代码处理一堆计时器、3 个后台线程和大量 UDP 数据包。后台线程是:两个 UDP 接收线程和一个发送线程。后台线程运行一个恒定的循环,在两个不同的端口上寻找数据。发送线程运行另一个常量循环,但仅在其队列中有数据时才发送数据。 UDP 处理仅使用 socket()、bind()、sendto()、recvfrom() 和 select() 调用。

我的印象是,当前 Xcode 项目中的任何问题只会在 iPhone 模拟器中变得明显——过度发布只会使模拟器崩溃,等等。怎么可能使操作系统崩溃,而不使模拟器崩溃?

编辑:它在设备上运行得很好。不会崩溃,不会报告任何内存问题,nada。

最佳答案

要查看后台线程是否卡在阻塞的网络调用上,请在每个可能的阻塞调用之前和之后放置一个 NSLog(或 fprintf 到一个文件并将其刷新),并在调试器控制台可见的情况下运行。

关于iPhone 模拟器卡住整个操作系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3892234/

相关文章:

iphone - UIPageViewController 有时会在没有动画的情况下进行转换。为什么?

Iphone - 如何启用应用程序访问设备上的媒体? - ALAssetsLibraryErrorDomain 代码=-3312 "Global denied access"

objective-c - View 在 iOS 4.3 模拟器中显示不正确

java - 一般错误 : "Error uploading to the iTunes Store" in submission

ios - 如何为快速播放的声音添加延迟

ios - SWRevealViewController panGestureRecognizer 与 pageViewController iOS(滑动侧菜单)

iphone - iOS 6 问题将 MPMediaItem 转换为 NSData

iphone - 从 NSString 显示条形码的最佳方式

ios - 使用幻灯片刷新时表格单元格重复

ios - 分享 pdf 文档 .Swift