aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/trace
diff options
context:
space:
mode:
authorHana (Hyang-Ah) Kim <hyangah@gmail.com>2018-05-01 20:01:00 -0400
committerHyang-Ah Hana Kim <hyangah@gmail.com>2018-05-08 19:25:01 +0000
commit43b18f42410f427dbfa5b33cae88f6ef574bd547 (patch)
tree1149e14ecf9fb553ecc8da0ded52ab41c471d08c /src/cmd/trace
parent9eface7077f31ccf9580df6713252bb0fdd867e4 (diff)
downloadgo-43b18f42410f427dbfa5b33cae88f6ef574bd547.tar.gz
go-43b18f42410f427dbfa5b33cae88f6ef574bd547.zip
cmd/trace: handle invalid goid para in /trace
Change-Id: I1cb7c8b70a5ae16386f6abb577c23d821f7ff7f0 Reviewed-on: https://go-review.googlesource.com/112197 Reviewed-by: Peter Weinberger <pjw@google.com> Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
Diffstat (limited to 'src/cmd/trace')
-rw-r--r--src/cmd/trace/trace.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/cmd/trace/trace.go b/src/cmd/trace/trace.go
index fcba0cbc3f..31ef3b6892 100644
--- a/src/cmd/trace/trace.go
+++ b/src/cmd/trace/trace.go
@@ -185,11 +185,15 @@ func httpJsonTrace(w http.ResponseWriter, r *http.Request) {
// If goid argument is present, we are rendering a trace for this particular goroutine.
goid, err := strconv.ParseUint(goids, 10, 64)
if err != nil {
- log.Printf("failed to parse goid parameter '%v': %v", goids, err)
+ log.Printf("failed to parse goid parameter %q: %v", goids, err)
return
}
analyzeGoroutines(res.Events)
- g := gs[goid]
+ g, ok := gs[goid]
+ if !ok {
+ log.Printf("failed to find goroutine %d", goid)
+ return
+ }
params.mode = modeGoroutineOriented
params.startTime = g.StartTime
if g.EndTime != 0 {
@@ -249,12 +253,12 @@ func httpJsonTrace(w http.ResponseWriter, r *http.Request) {
// If start/end arguments are present, we are rendering a range of the trace.
start, err = strconv.ParseInt(startStr, 10, 64)
if err != nil {
- log.Printf("failed to parse start parameter '%v': %v", startStr, err)
+ log.Printf("failed to parse start parameter %q: %v", startStr, err)
return
}
end, err = strconv.ParseInt(endStr, 10, 64)
if err != nil {
- log.Printf("failed to parse end parameter '%v': %v", endStr, err)
+ log.Printf("failed to parse end parameter %q: %v", endStr, err)
return
}
}