如何在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中做到这一点?

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

这可以通过转到导航器中的Breakpoint Navigator选项卡,单击左下角的加号并选择“ Add Exception Breakpoint ”来设置。

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