mirror of
https://github.com/go-delve/delve.git
synced 2025-11-03 13:57:33 +08:00
Refactor save/restore register funcs
This commit is contained in:
@ -50,6 +50,14 @@ func (t *ThreadContext) blocked() bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (thread *ThreadContext) saveRegisters() error {
|
||||||
|
return sys.PtraceGetRegs(thread.Id, &thread.os.registers)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (thread *ThreadContext) restoreRegisters() error {
|
||||||
|
return sys.PtraceSetRegs(thread.Id, &thread.os.registers)
|
||||||
|
}
|
||||||
|
|
||||||
func writeMemory(thread *ThreadContext, addr uintptr, data []byte) (int, error) {
|
func writeMemory(thread *ThreadContext, addr uintptr, data []byte) (int, error) {
|
||||||
return sys.PtracePokeData(thread.Id, addr, data)
|
return sys.PtracePokeData(thread.Id, addr, data)
|
||||||
}
|
}
|
||||||
@ -57,17 +65,3 @@ func writeMemory(thread *ThreadContext, addr uintptr, data []byte) (int, error)
|
|||||||
func readMemory(thread *ThreadContext, addr uintptr, data []byte) (int, error) {
|
func readMemory(thread *ThreadContext, addr uintptr, data []byte) (int, error) {
|
||||||
return sys.PtracePeekData(thread.Id, addr, data)
|
return sys.PtracePeekData(thread.Id, addr, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (thread *ThreadContext) saveRegisters() error {
|
|
||||||
var regs sys.PtraceRegs
|
|
||||||
err := sys.PtraceGetRegs(thread.Id, ®s)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
thread.os.registers = regs
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (thread *ThreadContext) restoreRegisters() error {
|
|
||||||
return sys.PtraceSetRegs(thread.Id, &thread.os.registers)
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user