golang.org/x/tools@v0.21.1-0.20240520172518-788d39e776b1/internal/pkgbits/frames_go17.go (about) 1 // Copyright 2021 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 //go:build go1.7 6 // +build go1.7 7 8 package pkgbits 9 10 import "runtime" 11 12 // walkFrames calls visit for each call frame represented by pcs. 13 // 14 // pcs should be a slice of PCs, as returned by runtime.Callers. 15 func walkFrames(pcs []uintptr, visit frameVisitor) { 16 if len(pcs) == 0 { 17 return 18 } 19 20 frames := runtime.CallersFrames(pcs) 21 for { 22 frame, more := frames.Next() 23 visit(frame.File, frame.Line, frame.Function, frame.PC-frame.Entry) 24 if !more { 25 return 26 } 27 } 28 }