<feed xmlns='http://www.w3.org/2005/Atom'>
<title>go/src/runtime/callers_test.go, branch makepkg</title>
<subtitle>Fork of Go programming language with my patches.</subtitle>
<id>http://git.kilabit.info/go/atom?h=makepkg</id>
<link rel='self' href='http://git.kilabit.info/go/atom?h=makepkg'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/'/>
<updated>2026-02-03T11:04:30Z</updated>
<entry>
<title>all: prealloc slice with possible minimum capabilities</title>
<updated>2026-02-03T11:04:30Z</updated>
<author>
<name>Shulhan</name>
<email>m.shulhan@gmail.com</email>
</author>
<published>2024-10-25T17:48:33Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=011e40da85bddf83fee0ded83cb9115b7a88b3d4'/>
<id>urn:sha1:011e40da85bddf83fee0ded83cb9115b7a88b3d4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>runtime: use slices and maps to clean up tests</title>
<updated>2024-07-25T00:23:03Z</updated>
<author>
<name>apocelipes</name>
<email>seve3r@outlook.com</email>
</author>
<published>2024-07-24T10:24:06Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=0b0dfcd5404ce86d6c818d78bdb6348ded459e96'/>
<id>urn:sha1:0b0dfcd5404ce86d6c818d78bdb6348ded459e96</id>
<content type='text'>
Replace reflect.DeepEqual with slices.Equal/maps.Equal, which is
much faster.

Also remove some unecessary helper functions.

Change-Id: I3e4fa2938fed1598278c9e556cd4fa3b9ed3ad6d
GitHub-Last-Rev: 69bb43fc6e5c4a4a7d028528fe00b43db784464e
GitHub-Pull-Request: golang/go#67603
Reviewed-on: https://go-review.googlesource.com/c/go/+/587815
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Auto-Submit: Ian Lance Taylor &lt;iant@google.com&gt;
Reviewed-by: Ian Lance Taylor &lt;iant@google.com&gt;
</content>
</entry>
<entry>
<title>runtime: fix bp restoration in panic recovery for arm64</title>
<updated>2023-08-28T21:36:31Z</updated>
<author>
<name>Michael Anthony Knyszek</name>
<email>mknyszek@google.com</email>
</author>
<published>2023-08-28T19:26:46Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=f7a87e32997345b7acaabbf725d1b210e1cfe327'/>
<id>urn:sha1:f7a87e32997345b7acaabbf725d1b210e1cfe327</id>
<content type='text'>
Previously, the frame pointer wouldn't be restored at all, which could
cause panics during frame pointer unwinding. As of CL 516157, the frame
pointer is restored, but it's restored incorrectly on arm64: on arm64,
the frame pointer points one word below SP, but here it's one below
panic.fp which is the stack pointer of the caller's frame (nothing to do
with the architectural bp).

For #61766.

Change-Id: I86504b85a4d741df5939b51c914d9e7c8d6edaad
Reviewed-on: https://go-review.googlesource.com/c/go/+/523697
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
Run-TryBot: Michael Knyszek &lt;mknyszek@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
</content>
</entry>
<entry>
<title>runtime: restore caller's frame pointer when recovering from panic</title>
<updated>2023-08-15T14:52:21Z</updated>
<author>
<name>Nick Ripley</name>
<email>nick.ripley@datadoghq.com</email>
</author>
<published>2023-08-04T21:31:43Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=b51a4dd6c43194d8680a05ea735a02d70af976af'/>
<id>urn:sha1:b51a4dd6c43194d8680a05ea735a02d70af976af</id>
<content type='text'>
When recovering from a panic, restore the caller's frame pointer before
returning control to the caller. Otherwise, if the function proceeds to
run more deferred calls before returning, the deferred functions will
get invalid frame pointers pointing to an address lower in the stack.
This can cause frame pointer unwinding to crash, such as if an execution
trace event is recorded during the deferred call on architectures which
support frame pointer unwinding.

Fixes #61766

Change-Id: I45f41aedcc397133560164ab520ca638bbd93c4e
Reviewed-on: https://go-review.googlesource.com/c/go/+/516157
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
Reviewed-by: Michael Knyszek &lt;mknyszek@google.com&gt;
Reviewed-by: Felix Geisendörfer &lt;felix.geisendoerfer@datadoghq.com&gt;
</content>
</entry>
<entry>
<title>runtime: remove unused skip arg from fpTracebackPCs</title>
<updated>2023-05-12T13:51:15Z</updated>
<author>
<name>Felix Geisendörfer</name>
<email>felix.geisendoerfer@datadoghq.com</email>
</author>
<published>2023-04-26T07:36:53Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=c3db9af3a68f1a12d97d5cebaa434cd6e10dd11f'/>
<id>urn:sha1:c3db9af3a68f1a12d97d5cebaa434cd6e10dd11f</id>
<content type='text'>
This was accidentally left behind when moving the logic to set the skip
sentinel in pcBuf to the caller.

Change-Id: Id7565f6ea4df6b32cf18b99c700bca322998d182
Reviewed-on: https://go-review.googlesource.com/c/go/+/489095
Reviewed-by: Michael Pratt &lt;mpratt@google.com&gt;
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Run-TryBot: Felix Geisendörfer &lt;felix.geisendoerfer@datadoghq.com&gt;
</content>
</entry>
<entry>
<title>runtime: add a benchmark of FPCallers</title>
<updated>2023-03-30T19:18:18Z</updated>
<author>
<name>Felix Geisendörfer</name>
<email>felix.geisendoerfer@datadoghq.com</email>
</author>
<published>2023-03-13T08:56:45Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=25f9af666194f81741aed8ea422661bd58149d30'/>
<id>urn:sha1:25f9af666194f81741aed8ea422661bd58149d30</id>
<content type='text'>
This allows comparing frame pointer unwinding against the default
unwinder as shown below.

goos: linux
goarch: amd64
pkg: runtime
cpu: Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz
                    │ callers.txt │
                    │   sec/op    │
Callers/cached-32     1.254µ ± 0%
FPCallers/cached-32   24.99n ± 0%

For #16638

Change-Id: I4dd05f82254726152ef4a5d5beceab33641e9d2b
Reviewed-on: https://go-review.googlesource.com/c/go/+/475795
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Run-TryBot: Felix Geisendörfer &lt;felix.geisendoerfer@datadoghq.com&gt;
Reviewed-by: Michael Knyszek &lt;mknyszek@google.com&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
</content>
</entry>
<entry>
<title>runtime: add a benchmark of Callers</title>
<updated>2023-03-10T17:18:20Z</updated>
<author>
<name>Austin Clements</name>
<email>austin@google.com</email>
</author>
<published>2023-02-28T14:13:56Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=2d93805171275a4199bf74fe0e47671fb2f9aea4'/>
<id>urn:sha1:2d93805171275a4199bf74fe0e47671fb2f9aea4</id>
<content type='text'>
We're about to make major changes to tracebacks. We have benchmarks of
stack copying, but not of PC buffer filling, so add some that we can
track through these changes.

For #54466.

Change-Id: I3ed61d75144ba03b61517cd9834eeb71c99d74df
Reviewed-on: https://go-review.googlesource.com/c/go/+/472956
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Run-TryBot: Austin Clements &lt;austin@google.com&gt;
Reviewed-by: Michael Pratt &lt;mpratt@google.com&gt;
</content>
</entry>
<entry>
<title>cmd/compile: fix missing source information in ssa view</title>
<updated>2022-04-18T18:43:21Z</updated>
<author>
<name>hopehook</name>
<email>hopehook@qq.com</email>
</author>
<published>2022-04-08T09:59:05Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=3df9df8d6a1a140239e4cba0d0595bdab2ba9c60'/>
<id>urn:sha1:3df9df8d6a1a140239e4cba0d0595bdab2ba9c60</id>
<content type='text'>
Endlineno is lost when we call "genericSubst" to create the new
instantiation of the generic function. This will cause "readFuncLines"
to fail to read the target function.

To fix this issue, as @mdempsky pointed out, add the line in
cmd/compile/internal/noder/stencil.go:
    newf.Endlineno = gf.Endlineno

Fixes #51988

Change-Id: Ib408e4ed0ceb68df8dedda4fb551309e8385aada
Reviewed-on: https://go-review.googlesource.com/c/go/+/399057
Reviewed-by: Matthew Dempsky &lt;mdempsky@google.com&gt;
Run-TryBot: Matthew Dempsky &lt;mdempsky@google.com&gt;
Auto-Submit: Matthew Dempsky &lt;mdempsky@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Reviewed-by: Austin Clements &lt;austin@google.com&gt;
Reviewed-by: Than McIntosh &lt;thanm@google.com&gt;
</content>
</entry>
<entry>
<title>runtime: mark testCallersEqual as a test helper</title>
<updated>2020-02-22T04:32:05Z</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2020-01-07T18:55:35Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=7ee3b63c8bab7d1e6d3b8df21a465aecd2e08447'/>
<id>urn:sha1:7ee3b63c8bab7d1e6d3b8df21a465aecd2e08447</id>
<content type='text'>
Change-Id: I25e6fb733618b0a7af8adc69be85f3503810acf4
Reviewed-on: https://go-review.googlesource.com/c/go/+/213658
Run-TryBot: Ian Lance Taylor &lt;iant@golang.org&gt;
TryBot-Result: Gobot Gobot &lt;gobot@golang.org&gt;
Reviewed-by: Dan Scales &lt;danscales@google.com&gt;
</content>
</entry>
<entry>
<title>runtime: force segv for nil defer function to be in deferreturn()</title>
<updated>2019-12-12T19:23:45Z</updated>
<author>
<name>Dan Scales</name>
<email>danscales@google.com</email>
</author>
<published>2019-12-11T01:27:26Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=22d28a24c8b0d99f2ad6da5fe680fa3cfa216651'/>
<id>urn:sha1:22d28a24c8b0d99f2ad6da5fe680fa3cfa216651</id>
<content type='text'>
If the defer function pointer is nil, force the seg fault to happen in deferreturn
rather than in jmpdefer. jmpdefer is used fairly infrequently now because most
functions have open-coded defers.

The open-coded defer implementation calls gentraceback() with a callback when
looking for the first open-coded defer frame. gentraceback() throws an error if it
is called with a callback on an LR architecture and jmpdefer is on the stack,
because the stack trace can be incorrect in that case - see issue #8153. So, we
want to make sure that we don't have a seg fault in jmpdefer.

Fixes #36050

Change-Id: Ie25e6f015d8eb170b40248dedeb26a37b7f9b38d
Reviewed-on: https://go-review.googlesource.com/c/go/+/210978
Reviewed-by: Keith Randall &lt;khr@golang.org&gt;
Run-TryBot: Dan Scales &lt;danscales@google.com&gt;
TryBot-Result: Gobot Gobot &lt;gobot@golang.org&gt;
</content>
</entry>
</feed>
