aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/pprof
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2016-06-24 13:19:46 -0700
committerIan Lance Taylor <iant@golang.org>2016-06-24 22:52:15 +0000
commit83e839f86fcc0762ea513f8d5dd9a50a8338e9c2 (patch)
treee49aa89ecd2eb77bb51ca746e84a16ce55bca6de /src/cmd/pprof
parent5e43dc943a9265ec65690242eb8076727c18a958 (diff)
downloadgo-83e839f86fcc0762ea513f8d5dd9a50a8338e9c2.tar.xz
cmd/pprof: ignore symbols with address 0 and size 0
Handling a symbol with address 0 and size 0, such as an ELF STT_FILE symbols, was causing us to disassemble the entire program. We started adding STT_FILE symbols to help fix issue #13247. Fixes #16154. Change-Id: I174b9614e66ddc3d65801f7c1af7650f291ac2af Reviewed-on: https://go-review.googlesource.com/24460 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
Diffstat (limited to 'src/cmd/pprof')
-rw-r--r--src/cmd/pprof/pprof.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/cmd/pprof/pprof.go b/src/cmd/pprof/pprof.go
index 5c243d2a58..feccd1227b 100644
--- a/src/cmd/pprof/pprof.go
+++ b/src/cmd/pprof/pprof.go
@@ -308,6 +308,11 @@ func (f *file) Symbols(r *regexp.Regexp, addr uint64) ([]*plugin.Sym, error) {
}
var out []*plugin.Sym
for _, s := range f.sym {
+ // Ignore a symbol with address 0 and size 0.
+ // An ELF STT_FILE symbol will look like that.
+ if s.Addr == 0 && s.Size == 0 {
+ continue
+ }
if (r == nil || r.MatchString(s.Name)) && (addr == 0 || s.Addr <= addr && addr < s.Addr+uint64(s.Size)) {
out = append(out, &plugin.Sym{
Name: []string{s.Name},