]> Cypherpunks.ru repositories - gostls13.git/commit
runtime: support for debugger function calls on linux/arm64
authoreric fang <eric.fang@arm.com>
Tue, 22 Mar 2022 07:04:35 +0000 (07:04 +0000)
committerEric Fang <eric.fang@arm.com>
Sat, 23 Apr 2022 05:38:56 +0000 (05:38 +0000)
commit9717e8f80f973e747a6c6e4a938c7f2a091a9b50
treebc732bc7bd3edc3963aba165cc03d70d8a23e5cb
parent7c680974c66ca23f837cb4bee5587df8b05418c7
runtime: support for debugger function calls on linux/arm64

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.

Fixes #50614

Change-Id: I06b14e345cc89aab175f4a5f2287b765da85a86b
Reviewed-on: https://go-review.googlesource.com/c/go/+/395754
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Eric Fang <eric.fang@arm.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
src/runtime/asm_arm64.s
src/runtime/debug_test.go
src/runtime/debugcall.go
src/runtime/export_debug_amd64_test.go [new file with mode: 0644]
src/runtime/export_debug_arm64_test.go [new file with mode: 0644]
src/runtime/export_debug_regabiargs_off_test.go [deleted file]
src/runtime/export_debug_regabiargs_on_test.go [deleted file]
src/runtime/export_debug_test.go
src/runtime/signal_amd64.go
src/runtime/signal_arm64.go
src/runtime/traceback.go