美文网首页
捕获崩溃信号 获取堆栈信息

捕获崩溃信号 获取堆栈信息

作者: teddy8ear | 来源:发表于2020-03-02 12:45 被阅读0次

    void registerSignalHandler(void) {

        signal(SIGSEGV, handleSignalException);

        signal(SIGFPE, handleSignalException);

        signal(SIGBUS, handleSignalException);

        signal(SIGPIPE, handleSignalException);

        signal(SIGHUP, handleSignalException);

        signal(SIGINT, handleSignalException);

        signal(SIGQUIT, handleSignalException);

        signal(SIGABRT, handleSignalException);

        signal(SIGILL, handleSignalException);

    }

    void handleSignalException(int signal) {

        NSMutableString *crashString = [[NSMutableString alloc]init];

        void* callstack[128];

        int i, frames = backtrace(callstack, 128);

        char** traceChar = backtrace_symbols(callstack, frames);

        for (i = 0; i <frames; ++i) {

            [crashString appendFormat:@"%s\n", traceChar[i]];

        }

        NSLog(crashString);

    }

    相关文章

      网友评论

          本文标题:捕获崩溃信号 获取堆栈信息

          本文链接:https://www.haomeiwen.com/subject/wurmkhtx.html