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];
Ist ihr irgendwie zu erreichen, was ich will?
Ich habe versucht, diese Lösungen von SO zu befolgen, aber sie geben mir keinen Hinweis: