import lldb class StepWithChild: def __init__(self, thread_plan): self.thread_plan = thread_plan self.child_thread_plan = self.queue_child_thread_plan() def explains_stop(self, event): return False def should_stop(self, event): if not self.child_thread_plan.IsPlanComplete(): return False self.thread_plan.SetPlanComplete(True) return True def should_step(self): return False def queue_child_thread_plan(self): return None class StepOut(StepWithChild): def __init__(self, thread_plan, dict): StepWithChild.__init__(self, thread_plan) def queue_child_thread_plan(self): return self.thread_plan.QueueThreadPlanForStepOut(0) class StepScripted(StepWithChild): def __init__(self, thread_plan, dict): StepWithChild.__init__(self, thread_plan) def queue_child_thread_plan(self): return self.thread_plan.QueueThreadPlanForStepScripted("Steps.StepOut")