Iphone/IOS - 调试应用程序崩溃

Posted

技术标签:

【中文标题】Iphone/IOS - 调试应用程序崩溃【英文标题】:Iphone/IOS - Debugging Application Crashes 【发布时间】:2012-01-04 19:01:50 【问题描述】:

根据我所读到的,这个话题在过去几年里出现了好几次,通常答案都很模糊,而且我在一年多的时间里没有提到它,所以我希望有进展。

无论如何,我目前有一个安装了 ios 5.0.1 的 Iphone 4,并且遇到了从 App Store 安装的大多数应用程序在闪屏上崩溃的问题。很多人说从 App Store 安装一个随机应用程序,重新安装应用程序,或者完全恢复你的手机可以解决这个问题,但它似乎不再有同样的效果(因为这些建议大部分是针对 IOS 4 和 3,而不是 5)。

所以,我所做的只是试图找到问题的根源。我将使用流行且知名的应用程序 UrbanSpoon 作为我的崩溃示例。以下是尝试运行 UrbanSpoon 后的系统日志和崩溃报告。据我从他们那里了解到,这与 IOS 沙箱应用程序的方式有关,但我无法弄清楚哪一部分具体说明了可能导致崩溃的原因。

非常感谢您对此的任何帮助,希望这些答案能对遇到此问题的每个人有所帮助!

系统日志:

(从 UrbanSpoon 首次执行到最后一次提及应用程序的日志文件中截取)

编辑: Syslog 太大,无法在此处发布,这里是它的链接。 http://dl.dropbox.com/u/9235267/MyiPhoneSysLogForUrbanSpoon.txt

UrbanSpoon 崩溃报告:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>AutoSubmitted</key>
    <true/>
    <key>SysInfoCrashReporterKey</key>
    <string>38f6d9c3d504f902f8dbae968517559766e3092d</string>
    <key>bug_type</key>
    <string>109</string>
    <key>description</key>
    <string>Incident Identifier: 568DB2CE-F9A2-47A7-A427-B5C4DF6A09D0
CrashReporter Key:   38f6d9c3d504f902f8dbae968517559766e3092d
Hardware Model:      iPhone3,1
Process:         urbanspin [282]
Path:            /var/mobile/Applications/42579EAA-3CD0-4B2B-BFF5-5EB1C9297207/urbanspin.app/urbanspin
Identifier:      urbanspin
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2012-01-04 13:22:22.479 -0500
OS Version:      iPhone OS 5.0.1 (9A405)
Report Version:  104

Exception Type:  00000020
Exception Codes: 0x8badf00d
Highlighted Thread:  0

Application Specific Information:
com.urbanspoon.urbanspin failed to launch in time

Elapsed total CPU time (seconds): 20.580 (user 20.580, system 0.000), 100% CPU 
Elapsed application CPU time (seconds): 0.511, 2% CPU

Thread 0:
0   ???                             0x34a7f110 0 + 883421456
1   Foundation                      0x32356c92 0x32350000 + 27794
2   AnyRingLib.dylib                0x00379a3e 0x377000 + 10814
3   dyld                            0x2febdf80 0x2feb1000 + 53120
4   dyld                            0x2febdbcc 0x2feb1000 + 52172
5   dyld                            0x2febb7d0 0x2feb1000 + 42960
6   dyld                            0x2febc790 0x2feb1000 + 46992
7   dyld                            0x2feb35c0 0x2feb1000 + 9664
8   dyld                            0x2feb9106 0x2feb1000 + 33030
9   ???                             0x3367b5a4 0 + 862434724
10  SubstrateLoader.dylib           0x000d46ae 0xd3000 + 5806
11  SubstrateLoader.dylib           0x000d4828 0xd3000 + 6184
12  dyld                            0x2febdece 0x2feb1000 + 52942
13  dyld                            0x2febdbd4 0x2feb1000 + 52180
14  dyld                            0x2febb7d0 0x2feb1000 + 42960
15  dyld                            0x2febc790 0x2feb1000 + 46992
16  dyld                            0x2feb35c0 0x2feb1000 + 9664
17  dyld                            0x2feb9106 0x2feb1000 + 33030
18  ???                             0x3367b5a4 0 + 862434724
19  MobileSubstrate.dylib           0x0009aea0 0x9a000 + 3744
20  dyld                            0x2febdece 0x2feb1000 + 52942
21  dyld                            0x2febdbd4 0x2feb1000 + 52180
22  dyld                            0x2febb7d0 0x2feb1000 + 42960
23  dyld                            0x2febc790 0x2feb1000 + 46992
24  dyld                            0x2feb39f0 0x2feb1000 + 10736
25  dyld                            0x2feb7b80 0x2feb1000 + 27520
26  dyld                            0x2feb22ca 0x2feb1000 + 4810
27  dyld                            0x2feb205c 0x2feb1000 + 4188

Thread 1:
0   ???                             0x34a7e3b4 0 + 883418036
1   ???                             0x34beab98 0 + 884911000
2   ???                             0xfffffffc 0 + -4

Thread 2:
0   ???                             0x34a8ecd4 0 + 883485908
1   ???                             0x3626d0a0 0 + 908513440

Thread 3:
0   ???                             0x34a8ecd4 0 + 883485908
1   ???                             0x3626d0a0 0 + 908513440

Unknown thread crashed with unknown flavor: 5, state_count: 1

Binary Images:
    0x1000 -    0x74fff +urbanspin armv7  &lt;0b3e8cdf11113d1abf4c0d83ef1a3ebe&gt; /var/mobile/Applications/42579EAA-3CD0-4B2B-BFF5-5EB1C9297207/urbanspin.app/urbanspin
   0x9a000 -    0x9afff +MobileSubstrate.dylib armv6  &lt;cf2cce379dcd3a4c970e3196b908b0b6&gt; /Library/MobileSubstrate/MobileSubstrate.dylib
   0xd3000 -    0xd4fff +SubstrateLoader.dylib armv6  &lt;30381ec9e24c3c289f447bf428bda2c1&gt; /Library/Frameworks/CydiaSubstrate.framework/Libraries/SubstrateLoader.dylib
   0xf7000 -    0xfafff  libsubstrate.dylib armv6  &lt;d375337d03a7324c9cfb608b7231eeea&gt; /usr/lib/libsubstrate.dylib
  0x300000 -   0x311fff +ActionMenu.dylib armv6  &lt;62581e9bc0d93ef2ab8175cd5e337e62&gt; /Library/MobileSubstrate/DynamicLibraries/ActionMenu.dylib
  0x318000 -   0x321fff +Activator.dylib armv6  &lt;53595f5e871d3d7eac4f8e945b039de3&gt; /Library/MobileSubstrate/DynamicLibraries/Activator.dylib
  0x329000 -   0x365fff +AdBlocker.dylib armv6  &lt;07089bfdb5563a33bee5fc772477dd33&gt; /Library/MobileSubstrate/DynamicLibraries/AdBlocker.dylib
  0x377000 -   0x396fff +AnyRingLib.dylib armv6  &lt;98857b11e0d73e13dfb59d83ed186a0e&gt; /Library/MobileSubstrate/DynamicLibraries/AnyRingLib.dylib
0x2feb1000 - 0x2fed2fff  dyld armv7  &lt;be7c0b491a943054ad12eb5060f1da06&gt; /usr/lib/dyld
0x31933000 - 0x31a78fff  CoreGraphics armv7  &lt;641fb6e558f239588a8bd05dbefff99a&gt; /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics
0x32350000 - 0x324cefff  Foundation armv7  &lt;ce466f428d953caaac6641d186665809&gt; /System/Library/Frameworks/Foundation.framework/Foundation
0x362fd000 - 0x363edfff  QuartzCore armv7  &lt;ff595b1a042933249466e92433e1af6f&gt; /System/Library/Frameworks/QuartzCore.framework/QuartzCore
0x36d54000 - 0x371edfff  UIKit armv7  &lt;97b527cd6fba35c6bb39263e0f362223&gt; /System/Library/Frameworks/UIKit.framework/UIKit
0x378d1000 - 0x3791cfff  CoreLocation armv7  &lt;b640873565a03e45a7d4c38d1b5abade&gt; /System/Library/Frameworks/CoreLocation.framework/CoreLocation
</string>
    <key>displayName</key>
    <string>urbanspin</string>
    <key>name</key>
    <string>urbanspin</string>
    <key>os_version</key>
    <string>iPhone OS 5.0.1 (9A405)</string>
    <key>system_ID</key>
    <string></string>
    <key>version</key>
    <string>??? (???)</string>
</dict>
</plist>

【问题讨论】:

【参考方案1】:

这行:“应用程序未能按时启动”似乎是整个事情的根源。这意味着应用程序在 -applicationDidFinishLaunchingWithOptions 方法中启动时做了太多工作。将较长的加载时间与 100% 的 CPU 使用率相结合,该应用程序看起来就像是精美瓷器商店中的一头公牛。而这些正是操作系统喜欢杀死的应用类型。

【讨论】:

那么,真的是 CPU 用完了然后就超时了? 嗯,每个app的开启功能(-applicationDidFinishLaunchingWithoptions)。需要尽快退出。如果没有,则触发 wait_fence。 20 秒太长了,意味着您的应用程序正在超载它的启动功能。 100% 的 CPU 使用率只是锦上添花。 有道理。我只是觉得奇怪的是每个应用商店应用程序都有这个问题,我只是以 UrbanSpoon 为例,但所有应用商店应用程序都有这个问题。资源应用程序的繁重和轻量级。 这似乎更像是一个特定于硬件的问题。我会带你去当地苹果商店的天才吧。如果每个应用程序都崩溃了,那肯定不是程序本身。 根据线程 0 调用堆栈,涉及越狱库(MobileSubstrate 和 SubstrateLoader)并侵入线程。既然您说这会影响所有应用程序,那么这很可能不是一般的硬件问题,而是这些库的问题。删除越狱和那些库,如果一切运行良好,我不会感到惊讶。

以上是关于Iphone/IOS - 调试应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

使用 Xcode 13.2 在设备中进行测试时,应用程序在 iPhone 6、iOS 12.5 上崩溃

iTunes 拒绝。应用程序启动时崩溃

UIVideoEditorController 在 iPad 上崩溃

为啥我的应用程序在发布模式下崩溃但在调试模式下不崩溃?

当我尝试调试时应用程序崩溃[重复]

如何从崩溃中提取调试信息