1aa4b37b2SJim Inghamimport lldb
2aa4b37b2SJim Ingham
3aa4b37b2SJim Inghamclass WrapStepOver():
4aa4b37b2SJim Ingham    def __init__(self, thread_plan, args_data, dict):
5aa4b37b2SJim Ingham        self.plan = thread_plan
6*2388a096SJonas Devlieghere        thread = thread_plan.GetThread()
7*2388a096SJonas Devlieghere        target = thread.GetProcess().GetTarget()
8*2388a096SJonas Devlieghere        frame_0 = thread.frames[0]
9aa4b37b2SJim Ingham        line_entry = frame_0.line_entry
10aa4b37b2SJim Ingham        start_addr = line_entry.addr
11aa4b37b2SJim Ingham        end_addr = line_entry.end_addr
12*2388a096SJonas Devlieghere        range_size = end_addr.GetLoadAddress(target) - start_addr.GetLoadAddress(target)
13aa4b37b2SJim Ingham        error = lldb.SBError()
14aa4b37b2SJim Ingham        self.sub_plan = thread_plan.QueueThreadPlanForStepOverRange(start_addr, range_size)
15aa4b37b2SJim Ingham
16aa4b37b2SJim Ingham    def should_step(self):
17aa4b37b2SJim Ingham        return False
18aa4b37b2SJim Ingham
19aa4b37b2SJim Ingham    def should_stop(self, event):
20aa4b37b2SJim Ingham        if self.sub_plan.IsPlanComplete():
21aa4b37b2SJim Ingham            self.plan.SetPlanComplete(True)
22aa4b37b2SJim Ingham            return True
23aa4b37b2SJim Ingham        else:
24aa4b37b2SJim Ingham            return False
25