如何在Swift中获得堆栈跟踪错误?

时间:2014-06-30 09:28:42

标签: ios exception swift

在Objective-C中,每当应用程序崩溃时,我都可以通过在AppDelegate

中使用此代码来查看堆栈跟踪以查看导致错误的最后一个方法的位置
 - (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");
}

它会将堆栈跟踪日志打印到控制台,我可以使用它来调试问题的原因,而不是在main.m没有信息的情况下结束

那我怎么能在Swift中做到这一点?

1 个答案:

答案 0 :(得分:4)

如果我理解正确,我认为您正在寻找的是 异常断点 ,其功能与常规断点相同,但只要抛出异常就会被调用。这样,它会在抛出异常的地方停止您的应用程序,因此您可以在崩溃时看到方法,代码行和变量值。

可以通过转到 Navigator 中的 Breakpoint Navigator 选项卡,单击左下角的加号并选择“ Add Exception Breakpoint “。

可以使用各种选项编辑异常断点,方法是右键单击并选择“编辑断点”。