bug-gdb
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to control number of disassembly lines displayed when single-ste


From: Pedro Alves
Subject: Re: How to control number of disassembly lines displayed when single-stepping
Date: Thu, 29 Mar 2012 10:04:59 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120316 Thunderbird/11.0

On 02/01/2012 07:38 PM, Frank wrote:

> I have a short script that generates an instruction-by-instruction
> execution trace of a program. However, as the script executes the
> "stepi" command in a loop, GDB displays several lines of disassembled
> machine code at each step instead of just the precise intruction being
> executed (which is indicated by a =>). I understand this is precisely
> what is desired in most cases, but I would like to get GDB to only
> display the line being executed (this makes for a smaller execution
> log file).
> 
> So, is there a way to control the number of context lines given when
> stepping through disassembled code? An environmental variable or
> control parameter of some sort? Much appreciated if you have the
> answer.


There's no such knob.

But instead of disassemble-next-line, you can do:

(gdb) display /i $pc

This only prints the insn at the current PC, but, also prints "1: x/i $pc" at
every step.

The best solution I can think of is to use the hook-stop (a hook that runs
every time the program stops)

(gdb) define hook-stop
> x/i $pc
>end

(gdb) si
=> 0x455197 <main+19>:  movq   $0x0,(%rax)
0x0000000000455197      29        memset (&args, 0, sizeof args);
(gdb) <enter>
=> 0x45519e <main+26>:  movq   $0x0,0x8(%rax)
0x000000000045519e      29        memset (&args, 0, sizeof args);
(gdb) <enter>
=> 0x4551a6 <main+34>:  movq   $0x0,0x10(%rax)
0x00000000004551a6      29        memset (&args, 0, sizeof args);
(gdb) <enter>
=> 0x4551ae <main+42>:  movq   $0x0,0x18(%rax)
0x00000000004551ae      29        memset (&args, 0, sizeof args);
(gdb)

-- 
Pedro Alves



reply via email to

[Prev in Thread] Current Thread [Next in Thread]