From 048a931ade10001b4b08eb70fc3cad3de3083a3e Mon Sep 17 00:00:00 2001 From: Joey Jiao Date: Thu, 29 Aug 2024 14:44:23 +0800 Subject: pkg/cover: fix loopvar bug in go func inside loop --- pkg/cover/backend/dwarf.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'pkg') diff --git a/pkg/cover/backend/dwarf.go b/pkg/cover/backend/dwarf.go index 70ad06a63..e36991bc3 100644 --- a/pkg/cover/backend/dwarf.go +++ b/pkg/cover/backend/dwarf.go @@ -160,7 +160,9 @@ func makeDWARFUnsafe(params *dwarfParams) (*Impl, error) { } binC := make(chan binResult, len(modules)) for _, module := range modules { - go func(m *vminfo.KernelModule) { + // check https://go.dev/blog/loopvar-preview for loopvar bug + module := module + go func() { info := &symbolInfo{ tracePC: make(map[uint64]bool), traceCmp: make(map[uint64]bool), @@ -185,7 +187,7 @@ func makeDWARFUnsafe(params *dwarfParams) (*Impl, error) { return } binC <- binResult{symbols: result.Symbols, coverPoints: result.CoverPoints, ranges: ranges, units: units} - }(module) + }() if isKcovBrokenInCompiler(params.getCompilerVersion(module.Path)) { preciseCoverage = false } -- cgit mrf-deployment