diff options
| author | Joey Jiao <joeyjiaojg@gmail.com> | 2021-06-24 07:56:47 +0800 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2021-06-24 10:41:44 +0200 |
| commit | 2c8f004ea6f49bc7ce072d3e87003f6e10dfd0e6 (patch) | |
| tree | 97ebeacd8cfc2071cbd3f09dd153990db9a2a865 /syz-manager | |
| parent | ec865f6ae70b0902cc21368ce14424446bc0bd60 (diff) | |
all: add /rawcoverfiles to help debug PC symbolize
Diffstat (limited to 'syz-manager')
| -rw-r--r-- | syz-manager/html.go | 13 |
1 files changed, 13 insertions, 0 deletions
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") |
