This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add a new format letter to dump instructions backward


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]