aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/symtab.go
diff options
context:
space:
mode:
authorTolyan Korniltsev <korniltsev.anatoly@gmail.com>2023-02-04 14:53:34 +0800
committerGopher Robot <gobot@golang.org>2023-02-09 20:43:56 +0000
commitf1855993f3aa0042014952b3a3ce80296df838b1 (patch)
tree71fc5e776f65e1112e007aaa63f41990632180d9 /src/runtime/symtab.go
parentb7736cbceb46d00fb1c8435e5c512635896985b6 (diff)
downloadgo-f1855993f3aa0042014952b3a3ce80296df838b1.tar.xz
runtime: skip trailing wrappers in runtime_expandFinalInlineFrame
The existing runtime_expandFinalInlineFrame implementation doesn't skip trailing wrappers, but gentraceback does skip wrapper functions. This change makes runtime_expandFinalInlineFrame handling wrapper functions consistent to gentraceback. Fixes #58288 Change-Id: I1b0e2c10b0a89bcb1e787b98d27730cb40a34406 Reviewed-on: https://go-review.googlesource.com/c/go/+/465097 Reviewed-by: Michael Pratt <mpratt@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Michael Pratt <mpratt@google.com> Run-TryBot: Michael Pratt <mpratt@google.com> Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/runtime/symtab.go')
-rw-r--r--src/runtime/symtab.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/runtime/symtab.go b/src/runtime/symtab.go
index dead27e5f2..da83fd93ea 100644
--- a/src/runtime/symtab.go
+++ b/src/runtime/symtab.go
@@ -230,7 +230,11 @@ func runtime_expandFinalInlineFrame(stk []uintptr) []uintptr {
}
// N.B. we want to keep the last parentPC which is not inline.
- stk = append(stk, pc)
+ if f.funcID == funcID_wrapper && elideWrapperCalling(lastFuncID) {
+ // Ignore wrapper functions (except when they trigger panics).
+ } else {
+ stk = append(stk, pc)
+ }
return stk
}