这次事故的可能原因是什么?

时间:2012-05-01 14:05:39

标签: ios stack-trace

我意识到这是一个模糊的问题,但我正在寻找一个可以开始的地方。我有testflight实时运行,并注意到以下崩溃:

0 Powercents 0x000781de testflight_backtrace + 142
1 Powercents 0x00078d6c TFSignalHandler + 212
2 libsystem_c.dylib 0x319937ec _sigtramp + 48
3 libsystem_c.dylib 0x3198920e pthread_kill + 54
4 libsystem_c.dylib 0x3198229e abort + 94
5 AppSupport 0x35f70c2e abortAfterPassingIntegrityCheck + 38
6 AppSupport 0x35f70ee6 runIntegrityCheckAndAbort + 526
7 AppSupport 0x35f7102c checkResultWithStatement + 120
8 AppSupport 0x35f72a12 _connectAndCheckVersion + 1058
9 AppSupport 0x35f72ab6 CPSqliteDatabaseConnectionForWriting + 42
10 AppSupport 0x35f72b8c CPSqliteDatabaseRegisterFunction + 20
11 AddressBook 0x345523f6 ABCDBContextCreateWithPathAndAddressBook + 214
12 AddressBook 0x34546428 ABCCreateAddressBookWithDatabaseDirectoryAndForceInProcessMigrationInProcessLinkingAndResetSortKeys + 232
13 AddressBook 0x34554cd6 ABAddressBookCreate + 14
14 TextInput 0x377981c4 _ZN2KB45fill_with_matchable_strings_from_address_bookERNS_7HashmapINS_6StringEbEE + 16
15 TextInput 0x3779edf4 _ZN2KB21DynamicDictionaryImpl28background_load_address_bookERKNS_16StaticDictionaryE + 200
16 TextInput 0x3779f72e _ZN2KBL14BackgroundLoadEPv + 278
17 libsystem_c.dylib 0x3194a734 _pthread_start + 320
18 libsystem_c.dylib 0x3194a5ef thread_start + 7

似乎从我在testflight中可以看出,崩溃恰好在打开应用程序时发生。

这是applicationDidFinishLaunching代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{   
    NSDictionary *plistData = [[NSBundle mainBundle] infoDictionary];
    MB_LOG_LEVEL = [[plistData valueForKey:@"MBLogLevel"] intValue];

    NSArray *versionParts = [[plistData objectForKey:@"CFBundleVersion"] componentsSeparatedByString:@" "];

    self.versionString = [NSString stringWithFormat:NSLocalizedString(@"version.string", nil),
                          [plistData objectForKey:@"CFBundleShortVersionString"], 
                          // accounts for $Rev: 407 $
                          [versionParts objectAtIndex: ([versionParts count] > 1 ? 1 : 0)],
                          [plistData objectForKey:@"MBBuildDate"]
                          ];

    [self bootstrap];

    // TestFlight and Google Analytics
    [Tracking startup];

    // Add the tab bar controller's current view as a subview of the window
    // Note: Do it this way, since the UIWindow class has no rootViewController
    // property in iOS 3.x.
    [window_ addSubview:self.tabBarController.view];
    [window_ makeKeyWindow];

    // set up APNS with Urban Airship
    [self initAirship:launchOptions];

    // If it is the first time running the app, delete all local notifications
    [self cleanLocalNotifications];

    // Handle launching from a notification
    UILocalNotification *localNotif =
    [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (localNotif) {
        NSLog(@"Recieved Notification %@",localNotif);
    }    

    return YES;
}

这是引导方法:

- (void)bootstrap
{    
    // simple check for a bootstrapped db
    Settings *settings = (Settings*)[DataManager objectForEntity:NSStringFromClass([Settings class]) 
                                            sortDescriptorsOrNil:nil
                                                  predicateOrNil:nil];
    if (!settings) {
        settings = (Settings*)[DataManager createManagedInstance:NSStringFromClass([Settings class])];
        [settings setEnergyMobileFirstRun:[NSNumber numberWithBool:YES]];
        [settings setFirstRun:[NSNumber numberWithBool:YES]];
        [settings setShowWelcomeAlertView:[NSNumber numberWithBool:YES]];
        [settings setOnPeakAlertNotificationTime:[NSNumber numberWithInt:0]];
        [settings setMidPeakAlertNotificationTime:[NSNumber numberWithInt:0]];
        [settings setOffPeakAlertNotificationTime:[NSNumber numberWithInt:0]];
        [settings setOnPeakAlertNotificationsActive:[NSNumber numberWithBool:NO]];
        [settings setMidPeakAlertNotificationsActive:[NSNumber numberWithBool:NO]];
        [settings setOffPeakAlertNotificationsActive:[NSNumber numberWithBool:NO]];
        [DataManager saveManagedInstances];
    }
    if ([settings.firstRun boolValue])
    {
        // Clear the Database
        [DataManager deleteAllObjectsForEntity:@"Appliance"];
        [DataManager deleteAllObjectsForEntity:@"Answer"];
        [DataManager deleteAllObjectsForEntity:@"AnsweredQuestion"];
        [DataManager deleteAllObjectsForEntity:@"Question"];
        [self loadSavingsTipData];
        [self createChecklistTips];
        [self initializeTimeOfUseBehaviour];
        [settings setFirstRun:[NSNumber numberWithBool:NO]];
        [DataManager saveManagedInstances];
    }
}

编辑以添加更多信息:

此堆栈跟踪来自TestFlight live。崩溃来自于从应用程序商店购买的应用程序。

这是整个堆栈跟踪:

    PRIMARY THREAD THREAD 10

0 Powercents 0x000781de testflight_backtrace + 142
1 Powercents 0x00078d6c TFSignalHandler + 212
2 libsystem_c.dylib 0x319937ec _sigtramp + 48
3 libsystem_c.dylib 0x3198920e pthread_kill + 54
4 libsystem_c.dylib 0x3198229e abort + 94
5 AppSupport 0x35f70c2e abortAfterPassingIntegrityCheck + 38
6 AppSupport 0x35f70ee6 runIntegrityCheckAndAbort + 526
7 AppSupport 0x35f7102c checkResultWithStatement + 120
8 AppSupport 0x35f72a12 _connectAndCheckVersion + 1058
9 AppSupport 0x35f72ab6 CPSqliteDatabaseConnectionForWriting + 42
10 AppSupport 0x35f72b8c CPSqliteDatabaseRegisterFunction + 20
11 AddressBook 0x345523f6 ABCDBContextCreateWithPathAndAddressBook + 214
12 AddressBook 0x34546428 ABCCreateAddressBookWithDatabaseDirectoryAndForceInProcessMigrationInProcessLinkingAndResetSortKeys + 232
13 AddressBook 0x34554cd6 ABAddressBookCreate + 14
14 TextInput 0x377981c4 _ZN2KB45fill_with_matchable_strings_from_address_bookERNS_7HashmapINS_6StringEbEE + 16
15 TextInput 0x3779edf4 _ZN2KB21DynamicDictionaryImpl28background_load_address_bookERKNS_16StaticDictionaryE + 200
16 TextInput 0x3779f72e _ZN2KBL14BackgroundLoadEPv + 278
17 libsystem_c.dylib 0x3194a734 _pthread_start + 320
18 libsystem_c.dylib 0x3194a5ef thread_start + 7
Hide Other Threads

THREAD 1 COM.APPLE.NSURLCONNECTIONLOADER

0 CoreFoundation 0x3738f12a __CFRunLoopRun + 882
1 CoreFoundation 0x373124a4 CFRunLoopRunSpecific + 300
2 CoreFoundation 0x3731236c CFRunLoopRunInMode + 104
3 Foundation 0x37b67bb8 +[NSURLConnection(Loader) _resourceLoadLoop:] + 308
4 Foundation 0x37b67a80 -[NSThread main] + 72
5 Foundation 0x37bfb590 __NSThread__main__ + 1048
6 libsystem_c.dylib 0x3194a734 _pthread_start + 320
7 libsystem_c.dylib 0x3194a5ef thread_start + 7
THREAD 2 COM.APPLE.CFSOCKET.PRIVATE

0 libsystem_c.dylib 0x3194a5ef thread_start + 7
THREAD 3 THREAD 11

Empty Stacktrace

THREAD 4 WEBTHREAD

0 CoreFoundation 0x3738f12a __CFRunLoopRun + 882
1 CoreFoundation 0x373124a4 CFRunLoopRunSpecific + 300
2 CoreFoundation 0x3731236c CFRunLoopRunInMode + 104
3 WebCore 0x32fd20f6 _ZL12RunWebThreadPv + 402
4 libsystem_c.dylib 0x3194a734 _pthread_start + 320
5 libsystem_c.dylib 0x3194a5ef thread_start + 7
THREAD 5 THREAD 8

0 CoreFoundation 0x3738f12a __CFRunLoopRun + 882
1 CoreFoundation 0x373124a4 CFRunLoopRunSpecific + 300
2 CoreFoundation 0x3738f44a CFRunLoopRun + 98
3 Powercents 0x000a9f0a +[UA_ASIHTTPRequest runRequests] + 134
4 Foundation 0x37b67a80 -[NSThread main] + 72
5 Foundation 0x37bfb590 __NSThread__main__ + 1048
6 libsystem_c.dylib 0x3194a734 _pthread_start + 320
7 libsystem_c.dylib 0x3194a5ef thread_start + 7
THREAD 6 THREAD 12

Empty Stacktrace

THREAD 7 THREAD 0

0 CoreFoundation 0x3738f0f0 __CFRunLoopRun + 824
1 CoreFoundation 0x373124a4 CFRunLoopRunSpecific + 300
2 CoreFoundation 0x3731236c CFRunLoopRunInMode + 104
3 GraphicsServices 0x3221f438 GSEventRunModal + 136
4 UIKit 0x33a96e7c UIApplicationMain + 1080
5 Powercents 0x0004cfb2 main + 66
6 Powercents 0x0004cf6b start + 39
THREAD 8 THREAD 1

0 0xffffffff + 0
THREAD 9 THREAD 2

Empty Stacktrace

THREAD 10 THREAD 3

Empty Stacktrace

THREAD 11 THREAD 6

Empty Stacktrace

THREAD 12 THREAD 7

0 CoreFoundation 0x3738f12a __CFRunLoopRun + 882
1 CoreFoundation 0x373124a4 CFRunLoopRunSpecific + 300
2 CoreFoundation 0x3731236c CFRunLoopRunInMode + 104
3 Foundation 0x37b5bb74 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 256
4 Foundation 0x37b75522 -[NSRunLoop(NSRunLoop) run] + 78
5 Powercents 0x0008d25c -[TFNetworkManager networkRunLoopThreadEntry] + 72
6 Foundation 0x37b67a80 -[NSThread main] + 72
7 Foundation 0x37bfb590 __NSThread__main__ + 1048
8 libsystem_c.dylib 0x3194a734 _pthread_start + 320
9 libsystem_c.dylib 0x3194a5ef thread_start + 7

4 个答案:

答案 0 :(得分:4)

我目前只在iOS 5.1设备上看到相同的生产崩溃。虽然我不确定是什么引发了崩溃,但我认为可以肯定地说这是一个已在iOS 6中修复的Apple漏洞。

答案 1 :(得分:1)

在我看来,您的应用程序适用于iOS通讯簿。如果您可以调试应用程序,请尝试通过更改通讯簿API调用来在连接上模拟此错误。

答案 2 :(得分:1)

它看起来与AddressBook相关 - 发布整个崩溃报告。

看起来好像正在初始化AddressBook API并且在打开支持的sqlLite数据库时发生错误。也许connectAndCheckVersion以某种方式失败。

TestFlight只在那里,因为它安装了一个全能型信号处理程序来报告应用程序崩溃到TestFlight Live。

答案 3 :(得分:0)

我不完全确定,但在我看来,这个答案涉及我遇到的同样问题:

App "failed to resume in time" and hangs