• Home
  • Raw
  • Download

Lines Matching refs:run

240     run_t* run, funcs_t* funcs HF_ATTR_UNUSED, size_t funcCnt, bool enableMasking) {  in arch_hashCallstack()  argument
242 for (size_t i = 0; i < funcCnt && i < run->global->netbsd.numMajorFrames; i++) { in arch_hashCallstack()
264 run->backtrace = hash; in arch_hashCallstack()
268 pid_t pid, run_t* run, funcs_t* funcs, size_t funcCnt, siginfo_t* si, const char* instr) { in arch_traceGenerateReport() argument
269 run->report[0] = '\0'; in arch_traceGenerateReport()
270 util_ssnprintf(run->report, sizeof(run->report), "ORIG_FNAME: %s\n", run->origFileName); in arch_traceGenerateReport()
271 util_ssnprintf(run->report, sizeof(run->report), "FUZZ_FNAME: %s\n", run->crashFileName); in arch_traceGenerateReport()
272 util_ssnprintf(run->report, sizeof(run->report), "PID: %d\n", pid); in arch_traceGenerateReport()
273 util_ssnprintf(run->report, sizeof(run->report), "SIGNAL: %s (%d)\n", in arch_traceGenerateReport()
275 util_ssnprintf(run->report, sizeof(run->report), "FAULT ADDRESS: %p\n", in arch_traceGenerateReport()
277 util_ssnprintf(run->report, sizeof(run->report), "INSTRUCTION: %s\n", instr); in arch_traceGenerateReport()
279 run->report, sizeof(run->report), "STACK HASH: %016" PRIx64 "\n", run->backtrace); in arch_traceGenerateReport()
280 util_ssnprintf(run->report, sizeof(run->report), "STACK:\n"); in arch_traceGenerateReport()
282 util_ssnprintf(run->report, sizeof(run->report), " <%" PRIxREGISTER "> [%s():%zu at %s]\n", in arch_traceGenerateReport()
289 static void arch_traceAnalyzeData(run_t* run, pid_t pid) { in arch_traceAnalyzeData() argument
329 arch_hashCallstack(run, funcs, funcCnt, false); in arch_traceAnalyzeData()
332 static void arch_traceSaveData(run_t* run, pid_t pid) { in arch_traceSaveData() argument
336 bool saveUnique = run->global->io.saveUnique; in arch_traceSaveData()
353 info.psi_siginfo.si_addr < run->global->netbsd.ignoreAddr) { in arch_traceSaveData()
356 run->global->netbsd.ignoreAddr); in arch_traceSaveData()
388 uint64_t oldBacktrace = run->backtrace; in arch_traceSaveData()
393 arch_hashCallstack(run, funcs, funcCnt, saveUnique); in arch_traceSaveData()
407 if (run->crashFileName[0] != '\0') { in arch_traceSaveData()
415 if (oldBacktrace == run->backtrace) { in arch_traceSaveData()
421 ATOMIC_POST_INC(run->global->cnts.crashesCnt); in arch_traceSaveData()
428 if (run->global->netbsd.symsWl) { in arch_traceSaveData()
430 run->global->netbsd.symsWlCnt, run->global->netbsd.symsWl, funcCnt, funcs); in arch_traceSaveData()
439 if (run->global->feedback.blacklist && in arch_traceSaveData()
440 (fastArray64Search(run->global->feedback.blacklist, run->global->feedback.blacklistCnt, in arch_traceSaveData()
441 run->backtrace) != -1)) { in arch_traceSaveData()
442 LOG_I("Blacklisted stack hash '%" PRIx64 "', skipping", run->backtrace); in arch_traceSaveData()
443 ATOMIC_POST_INC(run->global->cnts.blCrashesCnt); in arch_traceSaveData()
451 run->global->netbsd.symsBlCnt, run->global->netbsd.symsBl, funcCnt, funcs); in arch_traceSaveData()
454 ATOMIC_POST_INC(run->global->cnts.blCrashesCnt); in arch_traceSaveData()
460 ATOMIC_POST_ADD(run->global->cfg.dynFileIterExpire, _HF_DYNFILE_SUB_MASK); in arch_traceSaveData()
472 if (run->global->mutate.mutationsPerRun == 0U && run->global->cfg.useVerifier) { in arch_traceSaveData()
473 snprintf(run->crashFileName, sizeof(run->crashFileName), "%s/%s", run->global->io.crashDir, in arch_traceSaveData()
474 run->origFileName); in arch_traceSaveData()
476 snprintf(run->crashFileName, sizeof(run->crashFileName), in arch_traceSaveData()
478 run->global->io.crashDir, arch_sigName(info.psi_siginfo.si_signo), pc, run->backtrace, in arch_traceSaveData()
479 info.psi_siginfo.si_code, sig_addr, instr, run->global->io.fileExtn); in arch_traceSaveData()
483 snprintf(run->crashFileName, sizeof(run->crashFileName), in arch_traceSaveData()
485 run->global->io.crashDir, arch_sigName(info.psi_siginfo.si_signo), pc, run->backtrace, in arch_traceSaveData()
486 info.psi_siginfo.si_code, sig_addr, instr, localtmstr, pid, run->global->io.fileExtn); in arch_traceSaveData()
490 if (run->global->socketFuzzer.enabled) { in arch_traceSaveData()
494 if (files_exists(run->crashFileName)) { in arch_traceSaveData()
495 LOG_I("Crash (dup): '%s' already exists, skipping", run->crashFileName); in arch_traceSaveData()
497 memset(run->crashFileName, 0, sizeof(run->crashFileName)); in arch_traceSaveData()
501 if (!files_writeBufToFile(run->crashFileName, run->dynamicFile, run->dynamicFileSz, in arch_traceSaveData()
503 LOG_E("Couldn't write to '%s'", run->crashFileName); in arch_traceSaveData()
508 if (run->global->socketFuzzer.enabled) { in arch_traceSaveData()
510 fuzz_notifySocketFuzzerCrash(run); in arch_traceSaveData()
512 LOG_I("Crash: saved as '%s'", run->crashFileName); in arch_traceSaveData()
514 ATOMIC_POST_INC(run->global->cnts.uniqueCrashesCnt); in arch_traceSaveData()
516 ATOMIC_CLEAR(run->global->cfg.dynFileIterExpire); in arch_traceSaveData()
518 arch_traceGenerateReport(pid, run, funcs, funcCnt, &info.psi_siginfo, instr); in arch_traceSaveData()
521 static void arch_traceEvent(run_t* run HF_ATTR_UNUSED, pid_t pid) { in arch_traceEvent()
598 void arch_traceAnalyze(run_t* run, int status, pid_t pid) { in arch_traceAnalyze() argument
603 return arch_traceEvent(run, pid); in arch_traceAnalyze()
615 if (run->mainWorker) { in arch_traceAnalyze()
616 arch_traceSaveData(run, pid); in arch_traceAnalyze()
618 arch_traceAnalyzeData(run, pid); in arch_traceAnalyze()
671 bool arch_traceAttach(run_t* run) { in arch_traceAttach() argument
672 if (!arch_traceWaitForPidStop(run->pid)) { in arch_traceAttach()
675 if (ptrace(PT_ATTACH, run->pid, NULL, 0) == -1) { in arch_traceAttach()
676 PLOG_W("Couldn't ptrace(PT_ATTACH) to pid: %d", (int)run->pid); in arch_traceAttach()
679 if (!arch_traceWaitForPidStop(run->pid)) { in arch_traceAttach()
690 if (ptrace(PT_SET_EVENT_MASK, run->pid, &event, sizeof(event)) == -1) { in arch_traceAttach()
691 PLOG_W("Couldn't ptrace(PT_SET_EVENT_MASK) to pid: %d", (int)run->pid); in arch_traceAttach()
695 LOG_D("Attached to PID: %d", run->pid); in arch_traceAttach()
697 if (ptrace(PT_CONTINUE, run->pid, (void*)1, 0) == -1) { in arch_traceAttach()
698 PLOG_W("Couldn't ptrace(PT_CONTINUE) to pid: (int)%d", run->pid); in arch_traceAttach()