diff --git a/proctl/proctl_linux_amd64.go b/proctl/proctl_linux_amd64.go index a262c64a..f92989c5 100644 --- a/proctl/proctl_linux_amd64.go +++ b/proctl/proctl_linux_amd64.go @@ -156,9 +156,12 @@ func (dbp *DebuggedProcess) Step() error { return err } - // Reset instruction pointer to our restored instruction. - regs.Rip -= 1 - syscall.PtraceSetRegs(dbp.Pid, regs) + // Reset program counter to our restored instruction. + regs.SetPC(bp.Addr) + err = syscall.PtraceSetRegs(dbp.Pid, regs) + if err != nil { + return err + } } err = dbp.handleResult(syscall.PtraceSingleStep(dbp.Pid))