mirror of
https://github.com/rwinkhart/sys.git
synced 2026-08-31 06:16:41 -04:00
For pairs of GOARCH values that can execute each other's binaries on the same system, such as 386 and amd64, add the definitions and functions required to fetch and set registers when debugging either variant. Fixes golang/go#9739 Change-Id: I7896ddef7d341ffaee56614ebd080dc38c708ed4 Reviewed-on: https://go-review.googlesource.com/73555 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
// Code generated by linux/mkall.go generatePtracePair(arm, arm64). DO NOT EDIT.
|
|
|
|
// +build linux
|
|
// +build arm arm64
|
|
|
|
package unix
|
|
|
|
import "unsafe"
|
|
|
|
// PtraceRegsArm is the registers used by arm binaries.
|
|
type PtraceRegsArm struct {
|
|
Uregs [18]uint32
|
|
}
|
|
|
|
// PtraceGetRegsArm fetches the registers used by arm binaries.
|
|
func PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error {
|
|
return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
|
|
}
|
|
|
|
// PtraceSetRegsArm sets the registers used by arm binaries.
|
|
func PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error {
|
|
return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
|
|
}
|
|
|
|
// PtraceRegsArm64 is the registers used by arm64 binaries.
|
|
type PtraceRegsArm64 struct {
|
|
Regs [31]uint64
|
|
Sp uint64
|
|
Pc uint64
|
|
Pstate uint64
|
|
}
|
|
|
|
// PtraceGetRegsArm64 fetches the registers used by arm64 binaries.
|
|
func PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error {
|
|
return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
|
|
}
|
|
|
|
// PtraceSetRegsArm64 sets the registers used by arm64 binaries.
|
|
func PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error {
|
|
return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
|
|
}
|