Return more meaningful errors

This commit is contained in:
Derek Parker
2014-12-04 15:26:53 -06:00
parent d14183a2a2
commit f8bb5acc9b

View File

@ -24,7 +24,7 @@ type ThreadContext struct {
func (thread *ThreadContext) Registers() (*syscall.PtraceRegs, error) { func (thread *ThreadContext) Registers() (*syscall.PtraceRegs, error) {
err := syscall.PtraceGetRegs(thread.Id, thread.Regs) err := syscall.PtraceGetRegs(thread.Id, thread.Regs)
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("could not get registers %s", err)
} }
return thread.Regs, nil return thread.Regs, nil
@ -110,7 +110,7 @@ func (thread *ThreadContext) Clear(pc uint64) (*BreakPoint, error) {
} }
if _, err := syscall.PtracePokeData(thread.Id, uintptr(bp.Addr), bp.OriginalData); err != nil { if _, err := syscall.PtracePokeData(thread.Id, uintptr(bp.Addr), bp.OriginalData); err != nil {
return nil, err return nil, fmt.Errorf("could not clear breakpoint %s", err)
} }
delete(thread.Process.BreakPoints, pc) delete(thread.Process.BreakPoints, pc)
@ -141,7 +141,7 @@ func (thread *ThreadContext) Continue() error {
func (thread *ThreadContext) Step() (err error) { func (thread *ThreadContext) Step() (err error) {
regs, err := thread.Registers() regs, err := thread.Registers()
if err != nil { if err != nil {
return fmt.Errorf("could not get registers %s", err) return err
} }
bp, ok := thread.Process.BreakPoints[regs.PC()-1] bp, ok := thread.Process.BreakPoints[regs.PC()-1]
@ -149,7 +149,7 @@ func (thread *ThreadContext) Step() (err error) {
// Clear the breakpoint so that we can continue execution. // Clear the breakpoint so that we can continue execution.
_, err = thread.Clear(bp.Addr) _, err = thread.Clear(bp.Addr)
if err != nil { if err != nil {
return fmt.Errorf("could not clear breakpoint %s", err) return err
} }
// Reset program counter to our restored instruction. // Reset program counter to our restored instruction.