I apologize if I was unclear. Jim and I were both talking about Exx codes not meaning anything specific in the protocol. I meant to say that we should standardize what they mean in this instance (if we include errors).
FWIW, on the topic of errors, the gdb remote serial protocol does have an extension to add a string after an Exx error code, I think only certain packets adopt it / are expected to emit it.
In the case of a memory read packet like this, we either have (1) action cannot be completed at all - process has exited. Or request packet is improperly formed. An Exx response is sent. Or (2) not all of the memory regions requested were able to be read in full; or at all. This is not out of the ordinary if lldb tries to read beyond allocated pages, or past memory mapped I/O or something like that. All memory read packets are designed to potentially return fewer bytes than requested, and that would be the same behavior here â not all memory regions may be read completely for the requested amount. Itâs not an error and shouldnât be reported as such. (I think I saw some earlier examples were people were wondering if we might want to report an error code for one particular memory region that was unreadable or something â thatâs not how the memory read packets normally work.)
Minor aside, but debugserver only uses each Exx value in one place in the source code (or at least itâs supposed to, lol) so if we ever see a particular Exx value in a packet log, we can look at the debugserver sources and see what conditions it is sent in. Itâs normally enough to point to the source of the problem.