aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/trace/pprof.go
diff options
context:
space:
mode:
authorFelix Geisendörfer <felix.geisendoerfer@datadoghq.com>2024-08-27 21:07:57 +0200
committerMichael Knyszek <mknyszek@google.com>2024-09-23 15:02:42 +0000
commit6eb40d158a80985460afc3924c4239dc97a34ae0 (patch)
tree3df8096e85d0add2cab2ae19007c3733f16e26f8 /src/cmd/trace/pprof.go
parent89a5a60da623ca9e7f91a93cd34b35785e30ab7e (diff)
downloadgo-6eb40d158a80985460afc3924c4239dc97a34ae0.tar.xz
cmd/trace,internal/trace,runtime: refactor to access frames via range over func
Change-Id: Id0be0eb35ae8560bd5338ec296a086aaf4617db0 Reviewed-on: https://go-review.googlesource.com/c/go/+/608856 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com>
Diffstat (limited to 'src/cmd/trace/pprof.go')
-rw-r--r--src/cmd/trace/pprof.go20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/cmd/trace/pprof.go b/src/cmd/trace/pprof.go
index 856b97b75f..d27dfa7aa3 100644
--- a/src/cmd/trace/pprof.go
+++ b/src/cmd/trace/pprof.go
@@ -306,19 +306,19 @@ func (m *stackMap) profile() []traceviewer.ProfileRecord {
prof := make([]traceviewer.ProfileRecord, 0, len(m.stacks))
for stack, record := range m.stacks {
rec := *record
- i := 0
- stack.Frames()(func(frame trace.StackFrame) bool {
+ for i, frame := range slices.Collect(stack.Frames()) {
rec.Stack = append(rec.Stack, &trace.Frame{
PC: frame.PC,
Fn: frame.Func,
File: frame.File,
Line: int(frame.Line),
})
- i++
// Cut this off at pprofMaxStack because that's as far
// as our deduplication goes.
- return i < pprofMaxStack
- })
+ if i >= pprofMaxStack {
+ break
+ }
+ }
prof = append(prof, rec)
}
return prof
@@ -326,10 +326,10 @@ func (m *stackMap) profile() []traceviewer.ProfileRecord {
// pcsForStack extracts the first pprofMaxStack PCs from stack into pcs.
func pcsForStack(stack trace.Stack, pcs *[pprofMaxStack]uint64) {
- i := 0
- stack.Frames()(func(frame trace.StackFrame) bool {
+ for i, frame := range slices.Collect(stack.Frames()) {
pcs[i] = frame.PC
- i++
- return i < len(pcs)
- })
+ if i >= len(pcs) {
+ break
+ }
+ }
}