This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Add a new format letter to dump instructions backward
- From: Pedro Alves <palves at redhat dot com>
- To: Toshihito Kikuchi <k dot toshihito at yahoo dot de>, "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Mon, 25 Jan 2016 11:41:27 +0000
- Subject: Re: [PATCH] Add a new format letter to dump instructions backward
- Authentication-results: sourceware.org; auth=none
- References: <1827952218 dot 466587 dot 1453670934999 dot JavaMail dot yahoo dot ref at mail dot yahoo dot com> <1827952218 dot 466587 dot 1453670934999 dot JavaMail dot yahoo at mail dot yahoo dot com>
On 01/24/2016 09:28 PM, Toshihito Kikuchi wrote:
> Hi all,
>
Hi there.
> With the attached patch, I'd like to add a new format letter "j" to
> the "x" command to dump instructions in backward direction.
Thanks.
What's the rationale for making this a format letter though?
It seems orthogonal to the other format letters to me.
Example, say I dump raw opcodes in hex, with:
(gdb) x /4x main
0x400766 <main>: 0x55 0x48 0x89 0xe5
(gdb) x /4x
0x40076a <main+4>: 0x48 0x83 0xec 0x30
(gdb) x
0x40076e <main+8>: 0x48
(gdb)
0x40076f <main+9>: 0xc7
but then I can't go backwards in hex, as /j overrides it,
and always prints like /i:
(gdb) x /4xj
0x400766 <main>: push %rbp
0x400767 <main+1>: mov %rsp,%rbp
0x40076a <main+4>: sub $0x30,%rsp
=> 0x40076e <main+8>: movq $0x0,-0x8(%rbp)
Seems to me that some other UI would be better. E.g.,:
#1 - a different switch, like "x -back /i " ?
#2 - a different command, like "bx" ?
#3 - negative repeat counts ?
(gdb) x /4i // next 4 instructions
(gdb) x /-4i // previous 4 instructions
(gdb) x /4bx // next 4 bytes, in hex
(gdb) x /-4bx // previous 4 bytes, in hex
Added #1 just for completeness, I don't find it very convenient.
#3 feels natural to me. What do you (and others) think?
Adding some tests would be great. Also, the documentation
will need to be updated.
If you haven't yet, please take a look at:
https://sourceware.org/gdb/wiki/ContributionChecklist
Thanks,
Pedro Alves