Revert "[lldb] Fix thread step until to not set breakpoint(s) on incorrect line numbers"
authorMikhail Goncharov <goncharov.mikhail@gmail.com>
Mon, 27 Jun 2022 08:18:39 +0000 (10:18 +0200)
committerMikhail Goncharov <goncharov.mikhail@gmail.com>
Mon, 27 Jun 2022 08:18:39 +0000 (10:18 +0200)
This reverts commit a57b62deef37c7f2ec31bca3bf9173a6206bfb9b.

lldb-aarch64-ubuntu buildbot test fails since https://lab.llvm.org/buildbot/#/builders/96/builds/25128

lldb/source/Commands/CommandObjectThread.cpp
lldb/test/API/functionalities/thread/step_until/TestStepUntil.py

index 9396c36..037bbaf 100644 (file)
@@ -1033,21 +1033,11 @@ protected:
         line_table->FindLineEntryByAddress(fun_end_addr, function_start,
                                            &end_ptr);
 
-        // Since not all source lines will contribute code, check if we are
-        // setting the breakpoint on the exact line number or the nearest
-        // subsequent line number and set breakpoints at all the line table
-        // entries of the chosen line number (exact or nearest subsequent).
         for (uint32_t line_number : line_numbers) {
-          LineEntry line_entry;
-          bool exact = false;
           uint32_t start_idx_ptr = index_ptr;
-          start_idx_ptr = sc.comp_unit->FindLineEntry(
-              index_ptr, line_number, nullptr, exact, &line_entry);
-          if (start_idx_ptr != UINT32_MAX)
-            line_number = line_entry.line;
-          exact = true;
-          start_idx_ptr = index_ptr;
           while (start_idx_ptr <= end_ptr) {
+            LineEntry line_entry;
+            const bool exact = false;
             start_idx_ptr = sc.comp_unit->FindLineEntry(
                 start_idx_ptr, line_number, nullptr, exact, &line_entry);
             if (start_idx_ptr == UINT32_MAX)
index ee25d13..0145b34 100644 (file)
@@ -19,7 +19,7 @@ class StepUntilTestCase(TestBase):
         self.greater_than_two = line_number('main.c', 'Greater than or equal to 2.')
         self.back_out_in_main = line_number('main.c', 'Back out in main')
 
-    def common_setup (self, args):
+    def do_until (self, args, until_lines, expected_linenum):
         self.build()
         exe = self.getBuildArtifact("a.out")
 
@@ -48,8 +48,7 @@ class StepUntilTestCase(TestBase):
         thread = threads[0]
         return thread
 
-    def do_until (self, args, until_lines, expected_linenum):
-        thread = self.common_setup(args)
+        thread = self.common_setup(None)
 
         cmd_interp = self.dbg.GetCommandInterpreter()
         ret_obj = lldb.SBCommandReturnObject()
@@ -78,7 +77,7 @@ class StepUntilTestCase(TestBase):
         self.do_until(None, [self.less_than_two, self.greater_than_two], self.less_than_two)
 
     def test_missing_one (self):
-        """Test thread step until - targeting one line and missing it by stepping out to call site"""
+        """Test thread step until - targeting one line and missing it."""
         self.do_until(["foo", "bar", "baz"], [self.less_than_two], self.back_out_in_main)