Zeilennummer, Methodenname und Klassenname abrufen, wenn ein Absturz unter Verwendung von Objective C @ auftri

Ich entwickle eine App, in der ich Abstürze nachverfolgen muss. Es gibt eine Einschränkung, dass ich keine Quellen von Drittanbietern wie das Fabric-Framework von Twitter verwenden kann, um die Absturzprotokollierung durchzuführen.

erzeit kann ich nur den Grund für den Absturz ermitteln. Ich kann den genauen Absturzpunkt nicht ermitteln.

Was mache ich

In meinem App-DelegatendidFinishLaunchingWithOptions method Ich habe meinen eigenen Ausnahmehandler erstellt:

    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler); 

uncaughtExceptionHandler ----

void uncaughtExceptionHandler(NSException *exception) {
    NSLog(@"CRASH: %@", exception);
    NSLog(@"callStackSymbols: %@", [exception callStackSymbols]);
    NSLog(@"callStackReturnAddresses: %@", [exception callStackReturnAddresses]);
    NSLog(@"reason: %@", [exception reason]);
    NSLog(@"name: %@", [exception name]);    
    NSLog(@"%s %d %s %s", __FILE__, __LINE__, __PRETTY_FUNCTION__, __FUNCTION__);
// Internal error reporting
}

Ich habe meine App in @ abgestürviewDidLoad Methode mit diesem:

   NSArray *myary;

   myary = [NSArray arrayWithObjects:@"sad", nil];

   NSString *str =  [myary objectAtIndex:22];

Hier ist mein Stack Trace.

Ist ihr irgendwie zu erreichen, was ich will?

Ich habe versucht, diese Lösungen von SO zu befolgen, aber sie geben mir keinen Hinweis:

Lösung 1

Lösung 2

Antworten auf die Frage(0)

Ihre Antwort auf die Frage