================ @@ -735,6 +735,56 @@ This is a performance optimization, which speeds up debugging by avoiding multiple round-trips for retrieving thread information. The information from this packet can be retrieved using a combination of `qThreadStopInfo` and `m` packets. +### MultiMemRead + +Read memory from multiple memory ranges. + +This packet has one argument: + +* `ranges`: a list of pairs of numbers, formatted in base-16. Each pair is +separated by a `,`, as is each number in each pair. The first number of the +pair denotes the base address of the memory read, the second denotes the number +of bytes to be read. The list must end with a `;`. + +The reply packet starts with a comma-separated list of numbers formatted in +base-16, denoting how many bytes were read from each range, in the same order +as the request packet. The list is followed by a `;`, followed by a sequence of +bytes containing binary encoded data for all memory that was read. The length +of this sequence must be equal to the sum of the numbers provided at the start ---------------- felipepiovezan wrote:
Uhhh, actually you raise a good point. There are a handful of bytes that need to be escaped because of the binary encoding of data (*). So let's rephrase this as: > The length of the binary encoded data, after being decoded as required by the > GDB remote protocol, is equal to... (*) > The binary data representation uses 7d (ASCII ‘}’) as an escape character. > Any escaped byte is transmitted as the escape character followed by the > original character XORed with 0x20. For example, the byte 0x7d would be > transmitted as the two bytes 0x7d 0x5d. The bytes 0x23 (ASCII ‘#’), 0x24 > (ASCII ‘$’), and 0x7d (ASCII ‘}’) must always be escaped. Responses sent by > the stub must also escape 0x2a (ASCII ‘*’), so that it is not interpreted as > the start of a run-length encoded sequence (described next). https://github.com/llvm/llvm-project/pull/162675 _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
