| 231 | } |
| 232 | |
| 233 | void Fuzzer::CrashCallback() { |
| 234 | if (EF->__sanitizer_acquire_crash_state && |
| 235 | !EF->__sanitizer_acquire_crash_state()) |
| 236 | return; |
| 237 | Printf("==%lu== ERROR: libFuzzer: deadly signal\n", GetPid()); |
| 238 | PrintStackTrace(); |
| 239 | if(!INITED){ |
| 240 | Printf("IMPORTANT: crashed during replaying of seeds!\n"); |
| 241 | } |
| 242 | Printf("NOTE: libFuzzer has rudimentary signal handlers.\n" |
| 243 | " Combine libFuzzer with AddressSanitizer or similar for better " |
| 244 | "crash reports.\n"); |
| 245 | Printf("SUMMARY: libFuzzer: deadly signal\n"); |
| 246 | if(INITED){ |
| 247 | DumpCurrentUnit("crash-"); |
| 248 | } else { |
| 249 | DumpCurrentUnit("initcrash-"); |
| 250 | } |
| 251 | PrintFinalStats(); |
| 252 | _Exit(Options.ErrorExitCode); // Stop right now. |
| 253 | } |
| 254 | |
| 255 | void Fuzzer::ExitCallback() { |
| 256 | if (!RunningUserCallback) |
no test coverage detected