From 33c26cb735dc83786ebebe071a3e17cdd5383ead Mon Sep 17 00:00:00 2001 From: Joey Jiao Date: Wed, 4 Aug 2021 14:26:13 +0800 Subject: pkg/cover: fix func range drop into variable range --- pkg/cover/backend/elf.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'pkg') 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 -- cgit mrf-deployment