aboutsummaryrefslogtreecommitdiffstats
path: root/syz-manager
diff options
context:
space:
mode:
authorJoey Jiao <joeyjiaojg@gmail.com>2021-06-24 07:56:47 +0800
committerDmitry Vyukov <dvyukov@google.com>2021-06-24 10:41:44 +0200
commit2c8f004ea6f49bc7ce072d3e87003f6e10dfd0e6 (patch)
tree97ebeacd8cfc2071cbd3f09dd153990db9a2a865 /syz-manager
parentec865f6ae70b0902cc21368ce14424446bc0bd60 (diff)
all: add /rawcoverfiles to help debug PC symbolize
Diffstat (limited to 'syz-manager')
-rw-r--r--syz-manager/html.go13
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")