aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-07-26 19:38:24 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-07-27 10:22:23 +0200
commitb25fc7b83119e8dca728a199fd92e24dd4c33fa4 (patch)
tree15e95c4062be3f23ab8f66c05e33465d40c1d870 /tools
parent9d92841b4e4d0ac0f97f983cd90087323f27c26c (diff)
pkg/csource: add option to trace syscall results
This will be needed for testing of generated programs.
Diffstat (limited to 'tools')
-rw-r--r--tools/syz-prog2c/prog2c.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/tools/syz-prog2c/prog2c.go b/tools/syz-prog2c/prog2c.go
index 9d89e8241..6abbd68b4 100644
--- a/tools/syz-prog2c/prog2c.go
+++ b/tools/syz-prog2c/prog2c.go
@@ -21,7 +21,7 @@ var (
flagBuild = flag.Bool("build", false, "also build the generated program")
flagThreaded = flag.Bool("threaded", false, "create threaded program")
flagCollide = flag.Bool("collide", false, "create collide program")
- flagRepeat = flag.Bool("repeat", false, "repeat program infinitely or not")
+ flagRepeat = flag.Int("repeat", 1, "repeat program that many times (<=0 - infinitely)")
flagProcs = flag.Int("procs", 1, "number of parallel processes")
flagSandbox = flag.String("sandbox", "", "sandbox to use (none, setuid, namespace)")
flagProg = flag.String("prog", "", "file with program to convert (required)")
@@ -33,6 +33,7 @@ var (
flagNetdev = flag.Bool("netdev", false, "setup various net devices")
flagResetNet = flag.Bool("resetnet", false, "reset net namespace after each test")
flagHandleSegv = flag.Bool("segv", false, "catch and ignore SIGSEGV")
+ flagTrace = flag.Bool("trace", false, "trace syscall results")
)
func main() {
@@ -59,7 +60,8 @@ func main() {
opts := csource.Options{
Threaded: *flagThreaded,
Collide: *flagCollide,
- Repeat: *flagRepeat,
+ Repeat: *flagRepeat != 1,
+ RepeatTimes: *flagRepeat,
Procs: *flagProcs,
Sandbox: *flagSandbox,
Fault: *flagFaultCall >= 0,
@@ -72,6 +74,7 @@ func main() {
ResetNet: *flagResetNet,
HandleSegv: *flagHandleSegv,
Repro: false,
+ Trace: *flagTrace,
}
src, err := csource.Write(p, opts)
if err != nil {