[Lldb-commits] [PATCH] D58678: Improve step over performance by not stopping at branches that are function calls and stepping into and them out of each one

Greg Clayton via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Feb 26 10:43:26 PST 2019

clayborg marked 2 inline comments as done.
clayborg added inline comments.

Comment at: include/lldb/Core/Disassembler.h:309
+  ///     It true, then fine the first branch instruction that isn't
+  ///     a function call (a branch that calls and returns to the next
+  ///     instruction). If false, find the instruction index of any 
JDevlieghere wrote:
> s/fine/find/
I'll fix that

Comment at: packages/Python/lldbsuite/test/functionalities/breakpoint/require_hw_breakpoints/TestRequireHWBreakpoints.py:86
-                'step over failed',
-                'Could not create hardware breakpoint for thread plan'
+                'error: Could not create hardware breakpoint for thread plan.'
JDevlieghere wrote:
> Why did you remove the 'step over failed' substring?
After this change the step doesn't occur because it fails to set the hardware breakpoint, so the UI doesn't update and we don't need the process status. 

Before this change, the step was actually incorrectly single stepping into the function, then realizing it can't set the hardware breakpoint that was needed in order to step back out of the fucntion and the step was aborted after partially starting it. The "thread step-over" would also incorrectly return success (as we can see from the:
self.expect("thread step-over")
This line requires the command returns "success" unless you pass "error=True".

Now it just doesn't do the step at all and the error is returned form the "thread step-over". 




More information about the lldb-commits mailing list