【发布时间】:2017-06-09 08:35:03
【问题描述】:
我正在尝试使用 Swift 3.0 编写一些基本代码来捕获 iOS 10+ 中的崩溃,而不使用第三方库。
我发现了以下函数:
// Capturing exceptions
NSSetUncaughtExceptionHandler { exception in
print("Exception: \(exception.name) \(exception.reason!)\(exception.description)")
print(exception.callStackSymbols)
}
// Capturing other crashes - **is this enough ????**
// I wrote these in application didFinishLaunchingWithOptions method, but these don't get called.
signal(SIGABRT) {(a) in
print(a)
}
signal(SIGABRT){(a) in
print(a)
}
signal(SIGILL){(a) in
print(a)
}
signal(SIGSEGV){(a) in
print(a)
}
signal(SIGFPE){(a) in
print(a)
}
signal(SIGBUS){(a) in
print(a)
}
signal(SIGPIPE){(a) in
print(a)
}
1 - 这些方法够吗?
2 - 如果是这样,我应该在哪里调用他们来捕获崩溃?
为了触发崩溃,我在项目中唯一的 ViewController 对象的 ViewDidLoad 中编写了以下方法:
但是,这种方法给了我一个 EXC_BREAKPOINT 而不是上述崩溃之一。
3 - 如何以编程方式捕获 EXC_BREAKPOINT?
4 - 还有其他方法可以尝试触发崩溃吗?
【问题讨论】:
标签: ios objective-c swift crash crash-dumps