Re: Process record and replay checked in to main trunk

Eli Zaretskii
2009-05-01T13:28:57Z

It would be nice if i386-tdep.c had some comments about what it takes
for another x86 target to add support for process recording and
replay. Apologies if it's already described somewhere and I missed
it.

It looks like all is needed is to define suitable functions for
tdep->i386_intx80_record and tdep->i386_sysenter_record, is that
right? (If so, why so Linux-centric names?)

Also, some architectural overview of how the record/replay target
works would be nice, either in the comments or in gdbint.texinfo. For
example, just looking at i386_linux_intx80_sysenter_record, I cannot
understand how it succeed to record both the arguments to the syscall
and the return value. The syscall itself does not happen inside
record_linux_system_call, that just records the syscall parameters and
data buffers, right? And recording happens _before_ the instruction
being recorded executes, right? So how come
i386_linux_intx80_sysenter_record can use EAX as the syscall number
and immediately after the call to record_linux_system_call treat the
value of EAX as the value returned by the syscall? What am I missing
here?

It probably doesn't help that I don't know enough about how the target
stack works, but that isn't described, either, at least not in
target.[ch], right? The only thing I found is some very high-level
description at the beginning of target.h.