diff options
| author | Ian Lance Taylor <iant@golang.org> | 2016-06-24 13:19:46 -0700 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2016-06-24 22:52:15 +0000 |
| commit | 83e839f86fcc0762ea513f8d5dd9a50a8338e9c2 (patch) | |
| tree | e49aa89ecd2eb77bb51ca746e84a16ce55bca6de /src | |
| parent | 5e43dc943a9265ec65690242eb8076727c18a958 (diff) | |
| download | go-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')
| -rw-r--r-- | src/cmd/pprof/pprof.go | 5 |
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}, |
