Suggested as a backport candidate, as it's a core feature of the delve debugger that isn't available on darwin/arm64 and linux/arm64. With the growing prevalence of the new Apple M1 silicon, it would be extremely beneficial to include it in the next minor release.
There's some concern about back-porting this since it's really a feature, not a bug, but the code is very isolated and hence there are no safety concerns, and it would significantly improve the debugging experience on darwin/arm64, so in the weekly meeting we decided to approve.
Thanks everyone ^^
Really glad this got accepted, even though it does technically count as a feature. Our office recently rolled out the M1 Pro MacBooks to all new developers (myself included), so it's been a hassle for everyone without all the power Delve has to offer. Light at the end of the tunnel 😃
This CL adds support for debugger function calls on linux arm64
platform. The protocol is basically the same as in CL 109699, except for
the following differences:
1, The abi difference which affect parameter passing and frame layout.
2, Stores communication information in R20.
3, The closure register is R26.
4, Use BRK 0 instruction to generate a breakpoint. The saved PC in
sigcontext is the PC where the signal occurred, not the next PC.
In addition, this CL refactors the existing code (which is dedicated to
amd64) for easier multi-arch scaling.
Reviewed-by: Michael Knyszek <firstname.lastname@example.org>
Reviewed-by: Cherry Mui <email@example.com>
Run-TryBot: Eric Fang <firstname.lastname@example.org>
TryBot-Result: Gopher Robot <email@example.com>
(cherry picked from commit 9717e8f)
Reviewed-by: David Chase <firstname.lastname@example.org>