SORU
11 Kasım 2011, Cuma


İstisna 4.2/Güncellemelerinden iOS 5 altında konsol yığın izlemesi?

Böyle Büyük Mükafat 3 Altında.x ve iOS işlenmeyen bir özel durum için en az 4, bir Özel Durum İzleme (Java gibi) konsol çıkış üretilen yığını var öykünücüsü sinyal.

5 Güncellemelerinden 4.2, aynı uygulama kodu altında çalışan iOS işlenmeyen bir özel durum kaldırdığımda, iz oluşmaz yığını. (Özel bir kesme noktası ayarlamak için nasıl anlamaya yaptı, ama o konsolda traceback üretmek değil.)

Bu sadece böyle büyük mükafat bir ayar ben bir yerde, ya da "" böyle büyük mükafat 4/iOS 5? özelliği yapmak gerekir. Bir yol var, bu işlev biraz geri?

Güncelleme

Ne yazık ki, uncaughtExceptionHandler bir ekleme çalışmıyor. Burada işleyicisi:

void uncaughtExceptionHandler(NSException *exception) {
    NSLog(@"uncaughtExceptionHnadler -- Exception %@", [exception description]);
    // Because iOS 5 doesn't provide a traceback, provide one here
    NSLog(@"Stack trace: %@", [exception callStackSymbols]);
    // Let Flurry look at the error
    [FlurryAPI logError:@"Uncaught" message:@"Crash!" exception:exception];
}                                               

(Ben sadece yığın izlemesini ekledim zaten mevcut, Telaş şey yapmak için kesildiği ortaya çıktı.)

(İşleyicisi olduğu bildirildi sadece birkaç satır aşağıda) etkin burada

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Enable uncaught exception handler to dump stack and let Flurry log the exception
    NSUncaughtExceptionHandler* hdlr = NSGetUncaughtExceptionHandler();
    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
    NSUncaughtExceptionHandler* newHdlr = NSGetUncaughtExceptionHandler();

    // TODO: Test
    NSException* ex = [NSException exceptionWithName:@"AssertionFailure" reason:@"Test" userInfo:nil]; 
    @throw ex; 

Kesme beni iki alınan işleyicisi değerleri kontrol sağlamak için yola çıktım. İlk sıfır ve ikinci görünüşte geçerli bir adres. Ama test özel durum işleyicisi (iOS 5 simülatörü) hiç denetim alır. (İOS çalıştırdığımda olsa kontrol etmez 4.2 simülatörü.)

NSExceptionHandlingMask ayar görünüşe göre iPhone üzerinde mümkün değildir. Bu üniteleri ExceptionHandling.framework kullanılabilir değil.

Güncelleme 2

Bu gibi çalışır:

int main(int argc, char *argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = -1;
    @try {
        retVal = UIApplicationMain(argc, argv, nil, nil);
    }
    @catch (NSException* exception) {
        NSLog(@"Uncaught exception: %@", exception.description);
        NSLog(@"Stack trace: %@", [exception callStackSymbols]);
    }
    [pool release];
    return retVal;
}

CEVAP
4 EYLÜL 2012, Salı


Bu gibi çalışır:

int main(int argc, char *argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = -1;
    @try {
        retVal = UIApplicationMain(argc, argv, nil, nil);
    }
    @catch (NSException* exception) {
        NSLog(@"Uncaught exception: %@", exception.description);
        NSLog(@"Stack trace: %@", [exception callStackSymbols]);
    }
    [pool release];
    return retVal;
}

ARC için:

int main(int argc, char *argv[]) {

    int retVal = -1;
    @autoreleasepool {
        @try {
            retVal = UIApplicationMain(argc, argv, nil, nil);
        }
        @catch (NSException* exception) {
            NSLog(@"Uncaught exception: %@", exception.description);
            NSLog(@"Stack trace: %@", [exception callStackSymbols]);
        }
    }
    return retVal;
}

Hala varsayılan dökümü artık çalışmıyor neden ya neden/açıklama (hatta daha fazla) ciddi uncaughtExceptionHandler çeşit bekliyor çalışmıyor. Ancak, görünüşe göre bu sorun sadece öykünücüsü etkiler.

güncelleme:

Eğer Ürün - ^ giderseniz dikkat çekti . Düzeni ->Edit Düzeni seçin ve "Çalıştır (hata Ayıklama)" seçeneğini seçin "Tanı" sekmesine tıklayın ve tıklayın "Günlük Özel", bu geri kayıp Güncellemelerinden varsayılan özel durum günlüğü, belki (denemedim henüz) ortadan kaldırır ihtiyacı için yukarıda hack.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • GUN-TIME with Brandon

    GUN-TIME wit

    3 ŞUBAT 2009
  • RawBrahs

    RawBrahs

    28 Aralık 2010