[Lldb-commits] [lldb] [lldb][riscv] Fix setting breakpoint for undecoded instruction (PR #90075)
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Fri Jun 7 08:17:34 PDT 2024
================
@@ -94,6 +94,39 @@ static lldb::addr_t ReadFlags(NativeRegisterContext ®siter_context) {
LLDB_INVALID_ADDRESS);
}
+static int GetSoftwareBreakpointSize(const ArchSpec &arch,
+ lldb::addr_t next_flags) {
+ if (arch.GetMachine() == llvm::Triple::arm) {
+ if (next_flags & 0x20)
+ // Thumb mode
+ return 2;
+ else
+ // Arm mode
+ return 4;
+ }
+ if (arch.IsMIPS() || arch.GetTriple().isPPC64() ||
+ arch.GetTriple().isRISCV() || arch.GetTriple().isLoongArch())
+ return 4;
+ return 0;
+}
+
+static Status SetSoftwareBreakpointOnPC(const ArchSpec &arch, lldb::addr_t pc,
----------------
JDevlieghere wrote:
Small nit, but in recent years we've been preferring using `llvm::Error` over `lldb::Status` where possible. The benefit of `Error` is that it must be checked and it's trivial to convert between the two. It would be nice if this function would return an `llvm::Error`.
https://github.com/llvm/llvm-project/pull/90075
More information about the lldb-commits
mailing list