前提条件
首先请确保崩溃监控已初始化成功。
可能的原因
- 在Release环境下才能捕获到crash,Debug环境下调试器会优先捕获Crash。
- 平台上查看的时间段不对,请选择最近的一段时间。
- (概率极大)其他崩溃监控把parfait崩溃监控顶替了。
- Windows:
- abort、invalid parameter、purecall异常需要可执行文件和parfait sdk都为/md版本才能捕获。
- Mac:
- 1.3.6.0前不支持macos沙盒应用的崩溃监控。
- 无法捕获纯x64架构应用在m1机器上运行时发生的异常。
- Electron:
- 请禁用Electron自带的Crash reporter。
- win64下,v8自行注册了异常处理器,parfait crash监控无法捕获JIT编译代码的异常。
- UE4:
- 请禁用UE4自带的Crash reporter。
- MacOS下会UE会自行注册CrashHandler注册Signal Handler,拦截崩溃,可在初始化Parfait崩溃监控前调用如下代码,恢复Singal Handler为系统默认Signal Handler。
void restore_signal_handler() {
signal(SIGQUIT, SIG_DFL); // SIGQUIT is a user-initiated "crash".
signal(SIGILL, SIG_DFL);
signal(SIGEMT, SIG_DFL);
signal(SIGFPE, SIG_DFL);
signal(SIGBUS, SIG_DFL);
signal(SIGSEGV, SIG_DFL);
signal(SIGSYS, SIG_DFL);
signal(SIGABRT, SIG_DFL);
}