[LLDB][LoongArch] Make software single stepping work
authorWeining Lu <luweining@loongson.cn>
Thu, 8 Dec 2022 11:06:07 +0000 (19:06 +0800)
committerWeining Lu <luweining@loongson.cn>
Thu, 8 Dec 2022 11:06:07 +0000 (19:06 +0800)
commit3a9e07b1e7f4718a0e117f3a732f1679c4bf2e30
treecf436d47832f34f72807ed01166a68a69ce4467f
parentaeac2e4884a3ce62c920cd51806a9396da64d9f7
[LLDB][LoongArch] Make software single stepping work

Hardware single stepping is not currently supported by the linux kernel.
In order to support single step debugging, add EmulateInstructionLoongArch
to implement the software Single Stepping. This patch only support the
simplest single step execution of non-jump instructions.

Reviewed By: SixWeining, DavidSpickett

Differential Revision: https://reviews.llvm.org/D139158
lldb/source/Plugins/Instruction/CMakeLists.txt
lldb/source/Plugins/Instruction/LoongArch/CMakeLists.txt [new file with mode: 0644]
lldb/source/Plugins/Instruction/LoongArch/EmulateInstructionLoongArch.cpp [new file with mode: 0644]
lldb/source/Plugins/Instruction/LoongArch/EmulateInstructionLoongArch.h [new file with mode: 0644]
lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
lldb/source/Plugins/Process/Utility/NativeProcessSoftwareSingleStep.cpp
lldb/tools/lldb-server/CMakeLists.txt
lldb/tools/lldb-server/SystemInitializerLLGS.cpp