[英]How to read logs after iPhone app crash
这是我的情况:
我有一个集成了推送功能的应用程序(我们称之为MyApp)。 当应用程序从后台返回时,我启动了通过push注册用户的方法。 该应用已在开发人员模式下测试了很长时间,并且运行良好。
今天,该应用程序由Apple发布。 但是该应用程序不再起作用。 它一直崩溃,但仅在某些情况下会崩溃:-在3G,Edge或GPRS中,应用程序将在开始屏幕后立即崩溃-在WiFi或飞行模式下,应用程序将按预期运行
我还发现,该应用程序在连接到您无权访问的WiFi时可以正常工作(出现WiFi信号后,即使您无法使用LAN浏览互联网,该应用程序也不再崩溃)已连接!)。
希望您能为我提供有关错误消息的信息,但我不太了解如何消除应用程序崩溃。 如前所述,在开发人员中(在Simulator和iPhone上),它将可以正常工作!
我非常感谢您的提示!
意见建议 :
日志文件
Incident Identifier: CD5D1DFA-75E7-4042-B8C6-4DA8F2477852
CrashReporter Key: 639f660a06c84202b5bc3666882fda8532a610b3
Hardware Model: iPhone3,1
Process: myApp [1296]
Path: /var/mobile/Applications/06B7C009-BB46-4473-9221-C8924C3D7A81/myApp.app/myApp
Identifier: myApp
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2011-03-01 08:32:00.598 +0100
OS Version: iPhone OS 4.2.1 (8C148)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00050000
Crashed Thread: 0
Thread 0 Crashed:
0 libSystem.B.dylib 0x33b5fa3c strlen + 12
1 CoreFoundation 0x33a3e42e __CFStringAppendFormatCore + 2386
2 CoreFoundation 0x33a3daac _CFStringCreateWithFormatAndArgumentsAux + 64
3 CoreFoundation 0x33a5a924 _CFLogvEx + 64
4 Foundation 0x33625738 NSLogv + 56
5 Foundation 0x336256ec NSLog + 16
6 myApp 0x0000e42c PrintReachabilityFlags (Reachability.m:25)
7 myApp 0x0000e446 -[Reachability networkStatusForFlags:] (Reachability.m:147)
8 myApp 0x0000e518 -[Reachability currentReachabilityStatus] (Reachability.m:198)
9 myApp 0x000030f4 -[myAppAppDelegate configureTextField:imageView:reachability:] (myAppAppDelegate.m:278)
10 myApp 0x00003354 -[myAppAppDelegate updateInterfaceWithReachability:] (myAppAppDelegate.m:274)
11 myApp 0x00003bca -[myAppAppDelegate applicationDidFinishLaunching:] (myAppAppDelegate.m:25)
12 UIKit 0x3209ebfa -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 826
13 UIKit 0x3209a252 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 266
14 UIKit 0x32066484 -[UIApplication handleEvent:withNewEvent:] + 1108
15 UIKit 0x32065ec2 -[UIApplication sendEvent:] + 38
16 UIKit 0x32065900 _UIApplicationHandleEvent + 5084
17 GraphicsServices 0x33b0eefc PurpleEventCallback + 660
18 CoreFoundation 0x33a556f8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 20
19 CoreFoundation 0x33a556bc __CFRunLoopDoSource1 + 160
20 CoreFoundation 0x33a47f76 __CFRunLoopRun + 514
21 CoreFoundation 0x33a47c80 CFRunLoopRunSpecific + 224
22 CoreFoundation 0x33a47b88 CFRunLoopRunInMode + 52
23 UIKit 0x32099302 -[UIApplication _run] + 374
24 UIKit 0x32096e8c UIApplicationMain + 664
25 myApp 0x00003082 main (main.m:13)
26 myApp 0x00003018 start + 44
Thread 1:
0 libSystem.B.dylib 0x33b89974 kevent + 24
1 libSystem.B.dylib 0x33c33704 _dispatch_mgr_invoke + 88
2 libSystem.B.dylib 0x33c33174 _dispatch_queue_invoke + 96
3 libSystem.B.dylib 0x33c32b98 _dispatch_worker_thread2 + 120
4 libSystem.B.dylib 0x33bd724a _pthread_wqthread + 258
5 libSystem.B.dylib 0x33bcf970 start_wqthread + 0
Thread 2:
0 libSystem.B.dylib 0x33bd79e0 __workq_kernreturn + 8
1 libSystem.B.dylib 0x33bd7364 _pthread_wqthread + 540
2 libSystem.B.dylib 0x33bcf970 start_wqthread + 0
Thread 3:
0 libSystem.B.dylib 0x33b5d268 mach_msg_trap + 20
1 libSystem.B.dylib 0x33b5f354 mach_msg + 44
2 CoreFoundation 0x33a48648 __CFRunLoopServiceMachPort + 88
3 CoreFoundation 0x33a47ed2 __CFRunLoopRun + 350
4 CoreFoundation 0x33a47c80 CFRunLoopRunSpecific + 224
5 CoreFoundation 0x33a47b88 CFRunLoopRunInMode + 52
6 WebCore 0x304df124 RunWebThread(void*) + 332
7 libSystem.B.dylib 0x33bd6886 _pthread_start + 242
8 libSystem.B.dylib 0x33bcba88 thread_start + 0
Thread 0 crashed with ARM Thread State:
r0: 0x00050000 r1: 0x00000024 r2: 0x00000027 r3: 0x00000003
r4: 0x00000000 r5: 0x00050003 r6: 0x00000001 r7: 0x2fdfe348
r8: 0x2fdfd64c r9: 0x00000002 r10: 0x00000000 r11: 0x00000000
ip: 0x00050003 sp: 0x2fdfd43c lr: 0x33a3e435 pc: 0x33b5fa3c
cpsr: 0x200f0010
Binary Images:
[...]
我看到问题出在可达性类中。 显然它在这里:
PrintReachabilityFlags(flags, "networkStatusForFlags");
因此问题出在"networkStatusForFlags"
字符串上。 它在长度计算期间崩溃,可能是因为最后没有代替'\\ 0'字符而是有一些垃圾并且访问了一些额外的内存。 尝试像这样更改它:
PrintReachabilityFlags(flags, "networkStatusForFlags\0");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.