[Lldb-commits] [PATCH] D17509: Work around a stepping bug in arm64 android M

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Mon Feb 22 08:23:24 PST 2016


labath created this revision.
labath added reviewers: tberghammer, ovyalov.
labath added a subscriber: lldb-commits.
Herald added subscribers: srhines, danalbert, tberghammer, rengolin, aemerson.

On arm64, linux<=4.4 and Android<=M there is a bug, which prevents single-stepping from working when
the system comes back from suspend, because of incorrectly initialized CPUs. This did not really
affect Android<M, because it did not use software suspend, but it is a problem for M, which uses
suspend (doze) quite extensively.  Fortunately, it seems that the first CPU is not affected by
this bug, so this commit implements a workaround by forcing the inferior to execute on the first
cpu whenever we are doing single stepping.

While inside, I have moved the implementations of Resume() and SingleStep() to the thread class
(instead of process).

http://reviews.llvm.org/D17509

Files:
  source/Plugins/Process/Linux/CMakeLists.txt
  source/Plugins/Process/Linux/NativeProcessLinux.cpp
  source/Plugins/Process/Linux/NativeProcessLinux.h
  source/Plugins/Process/Linux/NativeThreadLinux.cpp
  source/Plugins/Process/Linux/NativeThreadLinux.h
  source/Plugins/Process/Linux/SingleStepCheck.cpp
  source/Plugins/Process/Linux/SingleStepCheck.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17509.48689.patch
Type: text/x-patch
Size: 20582 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160222/dcf48e92/attachment-0001.bin>


More information about the lldb-commits mailing list