@@ -2530,3 +2530,41 @@ read packet: $e0030100#b9
25302530
25312531**Priority to Implement:** Only required for Wasm support. Necessary to show
25322532variables.
2533+
2534+ ### MultiMemRead
2535+
2536+ Read memory from multiple memory addresses.
2537+
2538+ There are two arguments to the request:
2539+
2540+ * `ranges`: a list of base-16 pairs of numbers. Each pair is separated by a
2541+ `,`, as is each number in the pair. The first number of the pair denotes the
2542+ base address of the memory read, the second denotes the number of bytes to be
2543+ read.
2544+ * `options`: an optional string of options. If present, it may be empty. If
2545+ present, it is the last argument of the request.
2546+
2547+ Both arguments must end with a `;`.
2548+
2549+ The reply packet starts with a comma-separated list of base-16 numbers,
2550+ denoting how many bytes were read from each address, followed by a `;`,
2551+ followed by a sequence of bytes containing the memory data. The length of this
2552+ sequence must be equal to the sum of the numbers provided at the start of the
2553+ reply.
2554+
2555+ If the stub is unable to read from any individual address, it should return a
2556+ length of "zero" for that address in the reply packet.
2557+
2558+ A stub that supports this packet should return `MultiMemRead+` in the reply to
2559+ `qSupported`.
2560+
2561+ ```
2562+ send packet: $MultiMemRead:ranges:100a00,4,200200,a0,400000,4;
2563+ read packet: $4,0,2;<binary encoding of abcd1000 ><binary encoding of eeff >
2564+ ```
2565+
2566+ In the example above, the first read produced `abcd1000`, the read of `a0`
2567+ bytes from address `200200` failed, and the third read produced two bytes –
2568+ `eeff` – out of the four requested.
2569+
2570+ **Priority to Implement:** Only required for performance.
0 commit comments