aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/instance/instance.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2022-03-23 13:50:36 +0000
committerAleksandr Nogikh <wp32pw@gmail.com>2022-03-28 12:03:35 +0200
commitcdcc8b96dd9215a47ce5ce1074567a1be93eda5f (patch)
tree943129722632f399ee55e1245f7c10eaf98a5f8a /pkg/instance/instance.go
parentfc79262e5b62a97a2338b247a1c31ee1c79decc2 (diff)
all: collect raw coverage
Raw coverage might be important when e.g. analysing the origins of out-of-place coverage in coverage reports or understanding why the fuzzer could not reach deeper code. If "raw_cover" is set to true, syzkaller will remember unsorted and unduplicated coverage (PCs) for each its corpus program.
Diffstat (limited to 'pkg/instance/instance.go')
-rw-r--r--pkg/instance/instance.go14
1 files changed, 10 insertions, 4 deletions
diff --git a/pkg/instance/instance.go b/pkg/instance/instance.go
index 665281a47..c225f9696 100644
--- a/pkg/instance/instance.go
+++ b/pkg/instance/instance.go
@@ -452,6 +452,7 @@ type FuzzerCmdArgs struct {
Test bool
Runtest bool
Slowdown int
+ RawCover bool
}
func FuzzerCmd(args *FuzzerCmdArgs) string {
@@ -470,11 +471,16 @@ func FuzzerCmd(args *FuzzerCmdArgs) string {
if args.Verbosity != 0 {
verbosityArg = fmt.Sprintf(" -vv=%v", args.Verbosity)
}
- optionalArg := ""
+ flags := []tool.Flag{}
if args.Slowdown > 0 {
- optionalArg = " " + tool.OptionalFlags([]tool.Flag{
- {Name: "slowdown", Value: fmt.Sprint(args.Slowdown)},
- })
+ flags = append(flags, tool.Flag{Name: "slowdown", Value: fmt.Sprint(args.Slowdown)})
+ }
+ if args.RawCover {
+ flags = append(flags, tool.Flag{Name: "raw_cover", Value: "true"})
+ }
+ optionalArg := ""
+ if len(flags) > 0 {
+ optionalArg += " " + tool.OptionalFlags(flags)
}
return fmt.Sprintf("%v -executor=%v -name=%v -arch=%v%v -manager=%v -sandbox=%v"+
" -procs=%v -cover=%v -debug=%v -test=%v%v%v%v",