summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/process/TestProcessAPI.py
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2015-11-12 22:32:09 +0000
committerJim Ingham <jingham@apple.com>2015-11-12 22:32:09 +0000
commit127be38fb8100be70b4478a74e71d46090c1a25c (patch)
tree000c78690e311f337d5327c9c192ca5eaaeeda9f /lldb/packages/Python/lldbsuite/test/python_api/process/TestProcessAPI.py
parentfbaf5a9534653eb263716dda95e6d1613afb9899 (diff)
downloadbcm5719-llvm-127be38fb8100be70b4478a74e71d46090c1a25c.tar.gz
bcm5719-llvm-127be38fb8100be70b4478a74e71d46090c1a25c.zip
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
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/process/TestProcessAPI.py')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud