Summary: 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). Reviewers: tberghammer, ovyalov Subscribers: aemerson, rengolin, tberghammer, danalbert, srhines, lldb-commits Differential Revision: http://reviews.llvm.org/D17509 llvm-svn: 261636
16 lines
411 B
CMake
16 lines
411 B
CMake
include_directories(.)
|
|
include_directories(../POSIX)
|
|
include_directories(../Utility)
|
|
|
|
add_lldb_library(lldbPluginProcessLinux
|
|
NativeProcessLinux.cpp
|
|
NativeRegisterContextLinux.cpp
|
|
NativeRegisterContextLinux_arm.cpp
|
|
NativeRegisterContextLinux_arm64.cpp
|
|
NativeRegisterContextLinux_x86_64.cpp
|
|
NativeRegisterContextLinux_mips64.cpp
|
|
NativeThreadLinux.cpp
|
|
ProcFileReader.cpp
|
|
SingleStepCheck.cpp
|
|
)
|