[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 07/13] fuzz/x86_emulate: Add 'afl-cov' target
On 10/04/2017 09:23 AM, Jan Beulich wrote: >>>> On 25.09.17 at 16:26, <george.dunlap@xxxxxxxxxx> wrote: >> --- a/tools/fuzz/README.afl >> +++ b/tools/fuzz/README.afl >> @@ -41,3 +41,17 @@ Use the x86 instruction emulator fuzzer as an example. >> $ $AFLPATH/afl-fuzz -t 1000 -i testcase_dir -o findings_dir -- >> ./afl-harness >> >> Please see AFL documentation for more information. >> + >> +# GENERATING COVERAGE INFORMATION >> + >> +To use afl-cov or gcov, you need a separate binary instrumented to >> +generate coverage data. To do this, use the target `afl-cov`: >> + >> + $ make afl-cov #produces afl-harness-cov >> + >> +NOTE: Please also note that the coverage instrumentation hard-codes >> +the absolute path for the instrumentation read and write files in the >> +binary; so coverage data will always show up in the build directory no >> +matter where you run the binary from. >> + >> +Please see afl-cov and/or gcov documentation for more information. >> \ No newline at end of file > > Would you please add the missing newline? Ack > >> --- a/tools/fuzz/x86_instruction_emulator/Makefile >> +++ b/tools/fuzz/x86_instruction_emulator/Makefile >> @@ -23,19 +23,34 @@ x86_emulate_user.c x86_emulate_user.h: %: >> >> CFLAGS += $(CFLAGS_xeninclude) -D__XEN_TOOLS__ -I. >> >> +GCOV_FLAGS=--coverage > > := ? Ack > >> x86.h := asm/x86-vendors.h asm/x86-defns.h asm/msr-index.h >> x86_emulate.h := x86_emulate_user.h x86_emulate/x86_emulate.h $(x86.h) >> >> -x86_emulate_user.o: x86_emulate_user.c x86_emulate/x86_emulate.c >> $(x86_emulate.h) >> +X86_EMULATE_INPUTS = x86_emulate_user.c x86_emulate/x86_emulate.c >> $(x86_emulate.h) >> +x86_emulate_user.o: $(X86_EMULATE_INPUTS) >> + >> +x86_emulate_user-cov.o: $(X86_EMULATE_INPUTS) >> + $(CC) -c $(CFLAGS) $(GCOV_FLAGS) -o $@ x86_emulate_user.c >> >> fuzz-emul.o: $(x86_emulate.h) >> >> +fuzz-emul-cov.o: fuzz-emul.c $(x86_emulate.h) >> + $(CC) -c $(CFLAGS) $(GCOV_FLAGS) -o $@ fuzz-emul.c >> + >> +afl-harness-cov.o: afl-harness.c >> + $(CC) -c $(CFLAGS) $(GCOV_FLAGS) $^ -o $@ > > Rather than effectively repeating this command three time, I think > someone else had already suggested to use a pattern rule instead. What do you mean "three times"? There's only one *-cov.o file which can possibly be created by a generic rule, and that's this one. (The others all have special formulas already.) Is it really worth making a generic rule for a single instance? >> @@ -46,7 +61,7 @@ distclean: clean >> >> .PHONY: clean >> clean: >> - rm -f *.a *.o .*.d afl-harness >> + rm -f *.a *.o .*.d afl-harness afl-harness-cov *.gcda *.gcno *.gcov > > Perhaps simply *.gc* to cover for possible future generated file types? If I knew that this wouldn't match files like "foo.gcov-notes.txt" I'd be fine with it. I'll change it if you insist but I think it's probably better the way it is for now. -George _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |