func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
//crash
crashHandle { (crashInfoArr) in
for info in crashInfoArr{
print("CrashIno- \(info)")
}
}
return true
}
func crashHandle(crashContentAction:@escaping ([String])->Void){
DispatchQueue.global().async {
if CrashManager.readAllCrashInfo().count > 0 {
crashContentAction(CrashManager.readAllCrashInfo())
}
CrashManager.deleteAllCrashFile()
}
registerSignalHandler()
registerUncaughtExceptionHandler()
}
func SignalExceptionHandler(signal:Int32) -> Void
{
var mstr = String()
mstr += "Stack:\n"
mstr = mstr.appendingFormat("slideAdress:0x%0x\r\n", calculate())
for symbol in Thread.callStackSymbols {
mstr = mstr.appendingFormat("%@\r\n", symbol)
}
print("Swift- exception: \(mstr)")
CrashManager.saveCrash(appendPathStr: .signalCrashPath, exceptionInfo: mstr)
exit(signal)
}
func registerSignalHandler()
{
signal(SIGABRT, SignalExceptionHandler)
signal(SIGSEGV, SignalExceptionHandler)
signal(SIGBUS, SignalExceptionHandler)
signal(SIGTRAP, SignalExceptionHandler)
signal(SIGILL, SignalExceptionHandler)
signal(SIGHUP, SignalExceptionHandler)
signal(SIGINT, SignalExceptionHandler)
signal(SIGQUIT, SignalExceptionHandler)
signal(SIGFPE, SignalExceptionHandler)
signal(SIGPIPE, SignalExceptionHandler)
}
class ViewController: UIViewController {
var name:String!
override func viewDidLoad() {
super.viewDidLoad()
print("\(name!)")
}
I called registerSignalHandler() in the AppDelegate.
but SignalExceptionHandler is not get any action.
swift is 5.0
this is why