【问题标题】:How can I get stack trace error in Swift?如何在 Swift 中获取堆栈跟踪错误?
【发布时间】:2014-08-20 15:15:20
【问题描述】:

在 Objective-C 中,每当应用程序崩溃时,我可以通过在 AppDelegate 中使用此代码来获取堆栈跟踪以查看导致错误的最后一个方法在哪里

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

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

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

那么我该如何在 Swift 中做到这一点呢?

【问题讨论】:

标签: ios exception swift


【解决方案1】:

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

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

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

【讨论】:

  • 这甚至与 StackTrace 不一样。后者在生产模式中需要以字符串形式,而不仅仅是在操场/沙箱内。
  • 它不是堆栈跟踪,但它可以满足某些用户的类似目的。
猜你喜欢
  • 2019-03-05
  • 2013-04-18
  • 2010-10-11
  • 2010-09-11
  • 2010-12-06
  • 1970-01-01
  • 2018-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多