Re: How to show instructions in one record

慕冬亮 <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAD-N9QU9YS0qrcHrt=sNDRv1p4h1NXjfbF2g3LE_Wwa+sSo-xA@mail.gmail.com>
2016-09-06 11:00 GMT-04:00 Jan Kratochvil <[email protected]>:
> On Tue, 06 Sep 2016 16:13:52 +0200, 慕冬亮 wrote:
>> So how to show instructions in one record?
>
> I do not fully understand what "instructions in one record" mean but some
> demo:
>
I just want all the instructions which have already executed in one
execution path. Take the following demo as example,

What I need is the instruction list:

203             movq     %r9, 16(%rdi)
203             movq     %r9, 16(%rdi)
202             movq     %r8,  8(%rdi)
201             movq    %rax,   (%rdi)
199             movq    24(%rsi), %r10
198             movq    16(%rsi), %r9
......
If there are loops, I need all the instructions in the loop.
I don't know whether process record/replay could achieve this goal.

> (gdb) start
> [...]
> (gdb) record
> (gdb) c
> Continuing.
> Program received signal SIGINT, Interrupt.
> __memcpy_sse2 () at ../sysdeps/x86_64/memcpy.S:203
> 203             movq     %r9, 16(%rdi)
> (gdb) info record
> Active record target: record-full
> Record mode:
> Lowest recorded instruction number is 1.
> Highest recorded instruction number is 100092.
> Log contains 100092 instructions.
> Max logged instructions is 10000000.
> (gdb) reverse-stepi
> 203             movq     %r9, 16(%rdi)
> (gdb)
> 202             movq     %r8,  8(%rdi)
> (gdb)
> 201             movq    %rax,   (%rdi)
> (gdb)
> 199             movq    24(%rsi), %r10
> (gdb)
> 198             movq    16(%rsi), %r9
> (gdb) info record
> Active record target: record-full
> Replay mode:
> Lowest recorded instruction number is 1.
> Current instruction number is 100087.
> Highest recorded instruction number is 100092.
> Log contains 100092 instructions.
> Max logged instructions is 10000000.
> (gdb) frame
> #0  __memcpy_sse2 () at ../sysdeps/x86_64/memcpy.S:198
> 198             movq    16(%rsi), %r9
> (gdb) x/i $pc
> => 0x7ffff50311e9 <__memcpy_sse2+217>:  mov    0x10(%rsi),%r9
> (gdb) _
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.