func (t *Thread) singleStep() error { kret := C.single_step(t.os.thread_act) if kret != C.KERN_SUCCESS { return fmt.Errorf("could not single step") } t.dbp.trapWait(0) kret = C.clear_trap_flag(t.os.thread_act) if kret != C.KERN_SUCCESS { return fmt.Errorf("could not clear CPU trap flag") } return nil }
func (t *Thread) singleStep() error { kret := C.single_step(t.os.threadAct) if kret != C.KERN_SUCCESS { return fmt.Errorf("could not single step") } for { port := C.mach_port_wait(t.dbp.os.portSet, C.int(0)) if port == C.mach_port_t(t.ID) { break } } kret = C.clear_trap_flag(t.os.threadAct) if kret != C.KERN_SUCCESS { return fmt.Errorf("could not clear CPU trap flag") } return nil }
func (t *Thread) singleStep() error { kret := C.single_step(t.os.threadAct) if kret != C.KERN_SUCCESS { return fmt.Errorf("could not single step") } for { twthread, err := t.dbp.trapWait(t.dbp.Pid) if err != nil { return err } if twthread.ID == t.ID { break } } kret = C.clear_trap_flag(t.os.threadAct) if kret != C.KERN_SUCCESS { return fmt.Errorf("could not clear CPU trap flag") } return nil }