Re: Fwd: A typo of yours or a misunderstanding of mine?
Tom de Vries via Gdb <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
On 11/18/21 6:19 PM, Z J Hu via Gdb wrote: > I have been asked to forward my question about gdb documentation to you. > > ---------- Forwarded message --------- > From: Z J Hu <[email protected]> > Date: Wed, Nov 17, 2021 at 9:11 AM > Subject: A typo of yours or a misunderstanding of mine? > To: <[email protected]> > > > Dear Sourceware Team, > > Hope this email finds you well. > > When I'm reading the content in " > https://sourceware.org/gdb/onlinedocs/gdb/Memory.html", I find a statement > for 'x/-3uh' command as: "You can also specify a negative repeat count to > examine memory backward from the given address. For example, ‘x/-3uh 0x54320’ > prints three halfwords (h) at 0x54314, 0x54328, and 0x5431c." Should > 0x54314 be 0x54324 instead? I don't know what machine word size would be > for this statement, and it gives me some hard time to understand. Could you > clear it for me? > Hi, I did an experiment, to understand the behaviour: ... $ cat -n test.c 1 #define N 256 2 3 unsigned short data[N]; 4 5 int 6 main (void) 7 { 8 int i; 9 for (i = 0; i < N; ++i) 10 data[i] = i; 11 12 return 0; 13 } $ gcc test.c -g $ gdb -q -batch a.out -ex "set trace-commands on" -ex "b 12" -ex run -ex "p &data[10]" -ex "x/-3uh &data[10]" +b 12 Breakpoint 1 at 0x4004c3: file test.c, line 12. +run Breakpoint 1, main () at test.c:12 12 return 0; +p &data[10] $1 = (unsigned short *) 0x601074 <data+20> +x/-3uh &data[10] 0x60106e <data+14>: 7 8 9 $ ... Based on this, I'd say you caught a typo in the docs, and the example in the docs should mention the addresses 0x54314, 0x54318, and 0x5431c. Thanks for bringing this to our attention, I'll commit a fix shortly. Thanks, - Tom