diff options
| author | Zubin Mithra <zsm@google.com> | 2023-03-07 16:21:41 -0800 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2023-03-10 07:45:18 +0100 |
| commit | 5205ef306e8b4217fc49cb8d8bd18670b7d08c3c (patch) | |
| tree | b91b96f1402ae75c5c6a86cff16b40100ef3ce0b /tools/syz-cover | |
| parent | f08b59ac0d8759f409d594ddca4f08c920e23237 (diff) | |
tools/syz-cover: allow for exporting source line coverage info
Add a `json` CLI flag that allows for writing out a JSON file with the
following coverage information.
* Module
* Filename
* Covered source lines
* Uncovered source lines
* Both source lines
This can be used to view syzkaller coverage information on other source
browsing/viewing tools.
Usage:
$ ./syz-cover -kernel_obj <path/to/vmlinux> -json <output_json> rawcover
Diffstat (limited to 'tools/syz-cover')
| -rw-r--r-- | tools/syz-cover/syz-cover.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tools/syz-cover/syz-cover.go b/tools/syz-cover/syz-cover.go index e161eac07..80c58ffc5 100644 --- a/tools/syz-cover/syz-cover.go +++ b/tools/syz-cover/syz-cover.go @@ -42,6 +42,7 @@ func main() { flagKernelBuildSrc = flag.String("kernel_build_src", "", "path to kernel image's build dir (optional)") flagKernelObj = flag.String("kernel_obj", "", "path to kernel build/obj dir") flagExportCSV = flag.String("csv", "", "export coverage data in csv format (optional)") + flagExportLineJSON = flag.String("json", "", "export coverage data with source line info in json format (optional)") flagExportHTML = flag.String("html", "", "save coverage HTML report to file (optional)") ) defer tool.Init()() @@ -87,6 +88,15 @@ func main() { } return } + if *flagExportLineJSON != "" { + if err := rg.DoLineJSON(buf, progs, nil); err != nil { + tool.Fail(err) + } + if err := osutil.WriteFile(*flagExportLineJSON, buf.Bytes()); err != nil { + tool.Fail(err) + } + return + } if err := rg.DoHTML(buf, progs, nil); err != nil { tool.Fail(err) } |
