[Lldb-commits] [lldb] [lldb] New expedited register specfication for unavailable regs (PR #193894)

Jason Molenda via lldb-commits lldb-commits at lists.llvm.org
Fri May 8 22:00:11 PDT 2026


================
@@ -274,23 +295,31 @@ bool GDBRemoteRegisterContext::ReadRegisterBytes(const RegisterInfo *reg_info) {
           success = false;
         else {
           // Read the containing register if it hasn't already been read
-          if (!GetRegisterIsValid(prim_reg))
+          if (GetRegisterIsUnfetched(prim_reg))
             success = GetPrimordialRegister(prim_reg_info, gdb_comm);
----------------
jasonmolenda wrote:

and just to be clear, when the expedited registers name a register with explicitly no bytes, this PR (to accomplish anything) must mark that register as Unavailable and not allow the user (or more importantly, lldb) to try to refetch it.  It will fail when lldb tries to get it again, and the extra packet traffic is the whole point of this work.

If we can agree on what the behavior in the other cases - a failed register read, a partial-data register read - then the rest is implementation.  Jonas is pointing out that the implementation today is inconsistent, and he's right.

https://github.com/llvm/llvm-project/pull/193894


More information about the lldb-commits mailing list