【发布时间】:2010-10-08 15:52:51
【问题描述】:
我有一个非常奇怪的问题。每次我在 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。
【问题讨论】:
-
您是否尝试过运行调试器来查看调用了什么?
标签: iphone xcode ios ios-simulator