From 2c8f004ea6f49bc7ce072d3e87003f6e10dfd0e6 Mon Sep 17 00:00:00 2001 From: Joey Jiao Date: Thu, 24 Jun 2021 07:56:47 +0800 Subject: all: add /rawcoverfiles to help debug PC symbolize --- syz-manager/html.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'syz-manager') diff --git a/syz-manager/html.go b/syz-manager/html.go index 2b12b0a14..26b611aa1 100644 --- a/syz-manager/html.go +++ b/syz-manager/html.go @@ -49,6 +49,7 @@ func (mgr *Manager) initHTTP() { mux.HandleFunc("/file", mgr.httpFile) mux.HandleFunc("/report", mgr.httpReport) mux.HandleFunc("/rawcover", mgr.httpRawCover) + mux.HandleFunc("/rawcoverfiles", mgr.httpRawCoverFiles) mux.HandleFunc("/filterpcs", mgr.httpFilterPCs) mux.HandleFunc("/funccover", mgr.httpFuncCover) mux.HandleFunc("/filecover", mgr.httpFileCover) @@ -240,6 +241,7 @@ const ( DoHTMLTable DoCSV DoCSVFiles + DoRawCoverFiles ) func (mgr *Manager) httpCover(w http.ResponseWriter, r *http.Request) { @@ -316,6 +318,13 @@ func (mgr *Manager) httpCoverCover(w http.ResponseWriter, r *http.Request, funcF do = rg.DoCSV } else if funcFlag == DoCSVFiles { do = rg.DoCSVFiles + } else if funcFlag == DoRawCoverFiles { + if err := rg.DoRawCoverFiles(w, progs); err != nil { + http.Error(w, fmt.Sprintf("failed to generate coverage profile: %v", err), http.StatusInternalServerError) + return + } + runtime.GC() + return } if err := do(w, progs); err != nil { http.Error(w, fmt.Sprintf("failed to generate coverage profile: %v", err), http.StatusInternalServerError) @@ -487,6 +496,10 @@ func (mgr *Manager) httpRawCover(w http.ResponseWriter, r *http.Request) { buf.Flush() } +func (mgr *Manager) httpRawCoverFiles(w http.ResponseWriter, r *http.Request) { + mgr.httpCoverCover(w, r, DoRawCoverFiles, false) +} + func (mgr *Manager) httpFilterPCs(w http.ResponseWriter, r *http.Request) { if mgr.coverFilter == nil { fmt.Fprintf(w, "cover is not filtered in config.\n") -- cgit mrf-deployment