syscall: Don't use PtraceRegs if it is not defined.

From-SVN: r183758
This commit is contained in:
Ian Lance Taylor 2012-01-31 14:23:07 +00:00
parent 458842fb38
commit e8738e985e
4 changed files with 62 additions and 40 deletions

View File

@ -139,14 +139,6 @@ func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {
return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data)
}
func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {
return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
}
func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {
return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
}
func PtraceSetOptions(pid int, options int) (err error) {
return ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options))
}

View File

@ -6,10 +6,20 @@
package syscall
import "unsafe"
func (r *PtraceRegs) PC() uint64 {
return uint64(uint32(r.Eip));
return uint64(uint32(r.Eip))
}
func (r *PtraceRegs) SetPC(pc uint64) {
r.Eip = int32(pc);
r.Eip = int32(pc)
}
func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {
return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
}
func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {
return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
}

View File

@ -6,42 +6,52 @@
package syscall
import "unsafe"
type PtraceRegs struct {
R0 uint64
R1 uint64
R2 uint64
R3 uint64
R4 uint64
R5 uint64
R6 uint64
R7 uint64
R8 uint64
R19 uint64
R20 uint64
R21 uint64
R22 uint64
R23 uint64
R24 uint64
R25 uint64
R26 uint64
R27 uint64
R28 uint64
Hae uint64
R0 uint64
R1 uint64
R2 uint64
R3 uint64
R4 uint64
R5 uint64
R6 uint64
R7 uint64
R8 uint64
R19 uint64
R20 uint64
R21 uint64
R22 uint64
R23 uint64
R24 uint64
R25 uint64
R26 uint64
R27 uint64
R28 uint64
Hae uint64
Trap_a0 uint64
Trap_a1 uint64
Trap_a2 uint64
Ps uint64
Pc uint64
Gp uint64
R16 uint64
R17 uint64
R18 uint64
Ps uint64
Pc uint64
Gp uint64
R16 uint64
R17 uint64
R18 uint64
}
func (r *PtraceRegs) PC() uint64 {
return r.Pc;
return r.Pc
}
func (r *PtraceRegs) SetPC(pc uint64) {
r.Pc = pc;
r.Pc = pc
}
func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {
return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
}
func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {
return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
}

View File

@ -6,10 +6,20 @@
package syscall
import "unsafe"
func (r *PtraceRegs) PC() uint64 {
return r.Rip;
return r.Rip
}
func (r *PtraceRegs) SetPC(pc uint64) {
r.Rip = pc;
r.Rip = pc
}
func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {
return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
}
func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {
return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
}