[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 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?

> --- 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

:= ?

>  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.

> @@ -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?

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.