delve/proctl/registers_linux_amd64.go
2015-02-27 15:03:06 -06:00

30 lines
482 B
Go

package proctl
import sys "golang.org/x/sys/unix"
type Regs struct {
regs *sys.PtraceRegs
}
func (r *Regs) PC() uint64 {
return r.regs.PC()
}
func (r *Regs) SP() uint64 {
return r.regs.Rsp
}
func (r *Regs) SetPC(tid int, pc uint64) error {
r.regs.SetPC(pc)
return sys.PtraceSetRegs(tid, r.regs)
}
func registers(tid int) (Registers, error) {
var regs sys.PtraceRegs
err := sys.PtraceGetRegs(tid, &regs)
if err != nil {
return nil, err
}
return &Regs{&regs}, nil
}