aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorJoey Jiao <joeyjiaojg@gmail.com>2021-08-04 14:26:13 +0800
committerDmitry Vyukov <dvyukov@google.com>2021-08-16 13:36:55 +0200
commit33c26cb735dc83786ebebe071a3e17cdd5383ead (patch)
treef61588b70ed4dd18fe4d595f946560c750b3d6cc /pkg
parent6652437df0ae46ec854536cb66264b9282e500ec (diff)
pkg/cover: fix func range drop into variable range
Diffstat (limited to 'pkg')
-rw-r--r--pkg/cover/backend/elf.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/pkg/cover/backend/elf.go b/pkg/cover/backend/elf.go
index 227356eef..f96f38245 100644
--- a/pkg/cover/backend/elf.go
+++ b/pkg/cover/backend/elf.go
@@ -45,6 +45,10 @@ func elfReadSymbols(module *Module, info *symbolInfo) ([]*Symbol, error) {
}
var symbols []*Symbol
for i, symb := range allSymbols {
+ if symb.Info&0xf != uint8(elf.STT_FUNC) && symb.Info&0xf != uint8(elf.STT_NOTYPE) {
+ // Only save STT_FUNC, STT_NONE otherwise some symb range inside another symb range.
+ continue
+ }
text := symb.Value >= text.Addr && symb.Value+symb.Size <= text.Addr+text.Size
if text {
start := symb.Value + module.Addr