llvm-project/lldb
Jim Ingham 127be38fb8 Another little stepping optimization: if any of the source step commands are running through a range
of addresses, and the range has no branches, instead of running to the last instruction and
single-stepping over that, run to the first instruction after the end of the range.  If there
are no branches in the current range, then the bytes right after it have to be in the current
function, and have to be instructions not data in code, so this is safe.  And it cuts down one
extra stepi per source range step.

Incidentally, this also works around a bug in the llvm Intel assembler where it treats the "rep" 
prefix as a separate instruction from the repeated instruction.  If that were at the end of a
line range, then we would put a trap in place of the repeated instruction, which is undefined
behavior.  Current processors just ignore the repetition in this case, which changes program behavior.
Since there would never be a line range break after the rep prefix, always doing the range stepping 
to the beginning of the new range avoids this problem.

<rdar://problem/23461686>

llvm-svn: 252963
2015-11-12 22:32:09 +00:00
..
cmake LLDBStandalone: Report nice errors on missing vars 2015-11-10 18:09:14 +00:00
docs Have debugserver send the OS version string plus 2015-08-12 03:27:33 +00:00
examples Python 3 - modernize exception catching syntax. 2015-11-03 19:49:05 +00:00
include Made the ClangASTImporter into a shared pointer, eliminating a race condition. 2015-11-10 22:54:42 +00:00
lib autotools: Also link the new go libraries 2015-11-08 22:30:34 +00:00
lit Create a check-lldb-unit target to run unit tests. 2015-03-13 20:55:07 +00:00
lldb.xcodeproj Add data formatters for NSError and NSException 2015-11-06 02:43:32 +00:00
lldb.xcworkspace Working on getting the OSX build green 2015-05-12 02:20:27 +00:00
packages/Python/lldbsuite Implement RegisterContext for Mini Dumps. 2015-11-12 21:16:15 +00:00
resources Only export public symbols with the cmake build. 2015-09-04 00:00:41 +00:00
scripts Finish PyCallable -> PythonCallable conversion. 2015-11-12 20:11:02 +00:00
source Another little stepping optimization: if any of the source step commands are running through a range 2015-11-12 22:32:09 +00:00
test Move go expression tests to the new location. 2015-11-02 21:28:18 +00:00
third_party/Python/module Python 3 - Fix some issues with class / instance variables in unittest2. 2015-11-06 21:37:07 +00:00
tools Add more NetBSD platform glue for lldb 2015-11-07 15:31:54 +00:00
unittests Create `PythonTuple` and `PythonCallable` wrapper classes. 2015-11-11 19:42:27 +00:00
utils Python 3: Modernize exception raising syntax. 2015-11-03 21:01:45 +00:00
www Add a sketched out section on adding Language and LanguageRuntime plugins for language support 2015-11-02 22:26:55 +00:00
.arcconfig Update .arcconfig to point to reviews.llvm.org 2014-05-20 21:24:59 +00:00
.clang-format Create an expression parser for Go. 2015-11-02 19:30:40 +00:00
.gitignore Fix .gitignore to ignore symlinks. 2015-03-31 00:03:00 +00:00
CMakeLists.txt Fixup lldb-argdumper cmake build 2015-10-29 14:14:24 +00:00
CODE_OWNERS.txt Added myself to the CODE_OWNERS.txt list for a few subsystems. 2015-11-09 01:24:36 +00:00
INSTALL.txt Revert the patch to Test Commit Access 2015-07-06 11:26:51 +00:00
LICENSE.TXT
Makefile Test commit 2015-07-22 08:41:18 +00:00
lldb.root Introduce a mechanism for reusing Python modules out of tree. 2015-10-20 21:05:57 +00:00
use_lldb_suite_root.py Preparation for turning lldbsuite into a Python package. 2015-10-27 22:33:47 +00:00