jasonmolenda added a comment.

In D55718#1442965 <https://reviews.llvm.org/D55718#1442965>, @clayborg wrote:

> It would be really nice to get the GDB remote server for ARC so that it vends 
> the correct regs to begin with, but if that isn't possible I guess we need to 
> do what we are doing here. I would really like to not see more architectures 
> have to add code to ProcessGDBRemote.cpp at all.  If that isn't possible this 
> solution will need to be used.


Unrelated to this patchset, but just last week I was working on something and 
thinking about how our system of "the RSP stub is the canonical source of 
register knowledge" is probably not the best architecture.  IMO the remote stub 
should teach us (1) the name of each register, (2) the numbers it will use for 
each register, (3) the size in bits of each register, and (4) the offset into 
the g/G packet of that register.

Everything else about registers should come from lldb in either 
architecture-specific definitions (rax has 64 bits, and it has a slice register 
eax of 32 bits, an ax of 16 bits etc; it is printed as Uint64/32/16), or ABI 
definitions (rdi is arg1 in the posix x86_64 ABI; rsp is eh_frame regnum 7, 
dwarf regnum 7).  Coordination between the RSP stub and lldb should be done by 
register name, confirmed by register size (the remote stub says it has a 64-bit 
r0 and I only know about a 32-bit r0, we have a problem).

Back in 2015 I added some code in r247121 that would fill in eh_frame and dwarf 
register numbers from the ABI plugin if the remote stub didn't provide them in 
ProcessGDBRemote's AugmentRegisterInfoViaABI.  It might be better for ARC to 
hardcode these generic register additions some place like that.  The change in 
247121 was a step in the direction of having lldb be the canonical source of 
information about registers, but only doing the easy first bit.


Repository:
  rLLDB LLDB

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55718/new/

https://reviews.llvm.org/D55718



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to