diff options
Diffstat (limited to 'packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py')
-rw-r--r-- | packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py b/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py index b4e90c71721c..4e03d557b7a9 100644 --- a/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py +++ b/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py @@ -319,8 +319,16 @@ class MiExecTestCase(lldbmi_testcase.MiTestCaseBase): # -exec-step can keep us in the g_MyFunction for gcc self.runCmd("-exec-finish --frame 0") self.expect("\^running") - self.expect( - "\*stopped,reason=\"end-stepping-range\".+?main\.cpp\",line=\"30\"") + it = self.expect(["\*stopped,reason=\"end-stepping-range\".+?main\.cpp\",line=\"30\"", + "\*stopped,reason=\"end-stepping-range\".+?main\.cpp\",line=\"29\""]) + + if it == 1: + # Call to s_MyFunction may not follow immediately after g_MyFunction. + # There might be some instructions in between to restore caller-saved registers. + # We need to get past these instructions with a next to reach call to s_MyFunction. + self.runCmd("-exec-next --thread 1") + self.expect("\^running") + self.expect("\*stopped,reason=\"end-stepping-range\".+?main\.cpp\",line=\"30\"") # Test that -exec-step steps into s_MyFunction # (and that --frame is optional) |