12345678910111213141516171819202122232425262728 |
- // Copyright 2021 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- //go:build go1.7
- // +build go1.7
- package pkgbits
- import "runtime"
- // walkFrames calls visit for each call frame represented by pcs.
- //
- // pcs should be a slice of PCs, as returned by runtime.Callers.
- func walkFrames(pcs []uintptr, visit frameVisitor) {
- if len(pcs) == 0 {
- return
- }
- frames := runtime.CallersFrames(pcs)
- for {
- frame, more := frames.Next()
- visit(frame.File, frame.Line, frame.Function, frame.PC-frame.Entry)
- if !more {
- return
- }
- }
- }
|