2014-06-30 4 views
9

In Objective-C, Jedes Mal, wenn eine Anwendung abstürzt, ich Stack-Trace bekommen, um zu sehen, wo die letzte Methode, die AppDelegateWie kann ich einen Stack-Trace-Fehler in Swift bekommen?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSSetUncaughtExceptionHandler(&myExceptionHandler); 
    return YES; 
} 

void myExceptionHandler(NSException *exception) 
{ 
    NSArray *stack = [exception callStackReturnAddresses]; 
    NSLog(@"Stack trace: %@", stack); 

    NSLog(@"MyExceptionHandler"); 
} 

in mithilfe dieses Code den Fehler verursacht, und es wird das Stack-Trace Protokoll ausdrucken zu Konsole, die ich verwenden kann, um die Ursache des Problems zu debuggen, anstatt am main.m ohne Informationen zu enden

Also wie kann ich das in Swift tun?

+1

Kontrolle: http://stackoverflow.com/questions/24023112/try-catch-exceptions-in-swift –

+0

Hinweis: Der Code zeigt nur Stack-Traces für Ausnahmen, nicht für andere Signal basiert stürzt ab. – Kerni

Antwort

3

Wenn ich Sie richtig verstanden hat, denke ich, was Sie suchen ist ein Ausnahme Haltepunkt, die Funktionen wie ein normaler Haltepunkt aber werden aufgerufen, wenn eine Ausnahme ausgelöst wird. Auf diese Weise wird die Anwendung an der Stelle gestoppt, an der die Ausnahme ausgelöst wurde, sodass Sie die Methode, die Codezeile und die Variablenwerte zum Zeitpunkt des Absturzes sehen können.

Dies kann dazu auf die Breakpoint- Navigator Registerkarte im Navigator, Sie auf das Plus am unteren Rand „BreakpointAusnahme hinzufügen“ links und Auswahl eingestellt werden.

Die Exception-Haltepunkt als mit verschiedenen Optionen bearbeitet mit der rechten Maustaste darauf und wählen Sie „Bearbeiten Breakpoint-“ werden kann.

Verwandte Themen