diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-05-13 20:49:07 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-05-13 20:49:07 +0200 |
| commit | 50749f54cde9f63ddd99e65a6a2d45f89f237019 (patch) | |
| tree | 9636206e19fbf0e4367413047aed1a6b7903e7a4 /tools/syz-symbolize/symbolize.go | |
| parent | 1e61c8bc14f84ca8680c5a636514fb1ef2f7e091 (diff) | |
pkg/report: add ParseAll
ParseAll returns all reports in output.
Use it in syz-symbolize.
Diffstat (limited to 'tools/syz-symbolize/symbolize.go')
| -rw-r--r-- | tools/syz-symbolize/symbolize.go | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/tools/syz-symbolize/symbolize.go b/tools/syz-symbolize/symbolize.go index 299531ced..a98ffcf3c 100644 --- a/tools/syz-symbolize/symbolize.go +++ b/tools/syz-symbolize/symbolize.go @@ -50,21 +50,30 @@ func main() { fmt.Fprintf(os.Stderr, "failed to open input file: %v\n", err) os.Exit(1) } - rep := reporter.Parse(text) - if rep == nil { - rep = &report.Report{Report: text} - } else if *flagOutDir != "" { - saveCrash(rep, *flagOutDir) + reps := report.ParseAll(reporter, text) + if len(reps) == 0 { + rep := &report.Report{Report: text} + if err := reporter.Symbolize(rep); err != nil { + fmt.Fprintf(os.Stderr, "failed to symbolize report: %v\n", err) + os.Exit(1) + } + os.Stdout.Write(rep.Report) + return } - if err := reporter.Symbolize(rep); err != nil { - fmt.Fprintf(os.Stderr, "failed to symbolize report: %v\n", err) - os.Exit(1) + for _, rep := range reps { + if *flagOutDir != "" { + saveCrash(rep, *flagOutDir) + } + if err := reporter.Symbolize(rep); err != nil { + fmt.Fprintf(os.Stderr, "failed to symbolize report: %v\n", err) + } + fmt.Printf("TITLE: %v\n", rep.Title) + fmt.Printf("CORRUPTED: %v (%v)\n", rep.Corrupted, rep.CorruptedReason) + fmt.Printf("MAINTAINERS: %v\n", rep.Maintainers) + fmt.Printf("\n") + os.Stdout.Write(rep.Report) + fmt.Printf("\n\n") } - fmt.Printf("TITLE: %v\n", rep.Title) - fmt.Printf("CORRUPTED: %v (%v)\n", rep.Corrupted, rep.CorruptedReason) - fmt.Printf("MAINTAINERS: %v\n", rep.Maintainers) - fmt.Printf("\n") - os.Stdout.Write(rep.Report) } func saveCrash(rep *report.Report, path string) { |
