Re: How to display instructions around the current instuction?

Peng Yu via Gdb
2021-01-29T01:58:18Z

On 1/28/21, Pedro Alves <pedro@palves.net> wrote:
>
> On 27/01/21 23:12, Peng Yu via Gdb wrote:
>> Hi,
>>
>> The following command will disply instructions below the current
>> instructions. Is there a way to display around the current instruction
>> (e.g., 5 instructions above and 5 instructions below)?
>>
>> display/10i $rip
>>
>
> From gdb/NEWS:
>
> ~~~~
> *** Changes in GDB 7.12
>
> * GDB now supports a negative repeat count in the 'x' command to examine
> memory backward from the given address. For example:
>
> ...
> (gdb) x/-5i 0x0000000000400580
> 0x40056a <main(int, char**)+8>: mov %edi,-0x4(%rbp)
> 0x40056d <main(int, char**)+11>: mov %rsi,-0x10(%rbp)
> 0x400571 <main(int, char**)+15>: mov $0x40061c,%esi
> 0x400576 <main(int, char**)+20>: mov $0x2a,%edi
> 0x40057b <main(int, char**)+25>:
> callq 0x400536 <Func1(int, char const*)>
> ~~~~

Is there a documentation problem in gdb regarding this feature. I
don't see this feature is documented.

$ gdb --version
GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

(gdb) help display
Print value of expression EXP each time the program stops.
Usage: display[/FMT] EXP
/FMT may be used before EXP as in the "print" command.
/FMT "i" or "s" or including a size-letter is allowed,
as in the "x" command, and then EXP is used to get the address to examine
and examining is done as in the "x" command.

With no argument, display all currently requested auto-display expressions.
Use "undisplay" to cancel display requests previously made.
(gdb) help print
...
EXP may be preceded with /FMT, where FMT is a format letter
but no count or size letter (see "x" command).

> There's also this:
>
> ~~~~
> (gdb) help set disassemble-next-line
> Set whether to disassemble next source line or insn when execution stops.
> If ON, GDB will display disassembly of the next source line, in addition
> to displaying the source line itself. If the next source line cannot
> be displayed (e.g., source is unavailable or there's no line info), GDB
> will display disassembly of next instruction instead of showing the
> source line.
> If AUTO, display disassembly of next instruction only if the source line
> cannot be displayed.
> If OFF (which is the default), never display the disassembly of the next
> source line.
> (gdb)
> ~~~~
>

--
Regards,
Peng