blob: c66dc73eb3e11a37aeb0636537fadbbe683aabfd [file]
"""
Test stepping out of an inline frame that is not frame zero.
"""
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
class TestThreadStepOutInline(TestBase):
NO_DEBUG_INFO_TESTCASE = True
def step_out_of_frame(self, frame_idx, function, marker):
self.build()
_, _, thread, _ = lldbutil.run_to_name_breakpoint(self, "sink")
self.assertTrue(thread.GetFrameAtIndex(frame_idx).IsInlined())
thread.StepOutOfFrame(thread.GetFrameAtIndex(frame_idx))
self.assertStopReason(thread.GetStopReason(), lldb.eStopReasonPlanComplete)
frame = thread.GetFrameAtIndex(0)
self.assertEqual(frame.GetFunctionName(), function)
self.assertEqual(frame.GetLineEntry().GetLine(), line_number("main.c", marker))
def test_step_out_of_frame_1(self):
self.step_out_of_frame(1, "level1", "// after level2")
def test_step_out_of_frame_2(self):
self.step_out_of_frame(2, "main", "// after level1")