Я начал пробовать обратную отладку с помощью gdb 7, следуя инструкции:
http://www.sourceware.org/gdb/wiki/ProcessRecord/Tutorial
и я подумал, отлично!
Затем я начал отлаживать настоящую программу, которая выдает ошибку в конце. Поэтому я запускаю его с помощью gdb и ставлю точку останова непосредственно перед тем местом, где, как мне кажется, появляется ошибка. Затем я набираю «запись», чтобы начать запись действий для будущей обратной отладки. Но после некоторых шагов я получаю
Process record doesn't support instruction 0xf0d at address 0x2aaaab4c4b4e.
Process record: failed to record execution log.
Program received signal SIGTRAP, Trace/breakpoint trap.
0x00002aaaab4c4b4e in memcpy () from /lib64/libc.so.6
(gdb) n
Single stepping until exit from function memcpy,
which has no line number information.
Process record doesn't support instruction 0xf0d at address 0x2aaaab4c4b4e.
Process record: failed to record execution log.
Program received signal SIGABRT, Aborted.
0x00002aaaab4c4b4e in memcpy () from /lib64/libc.so.6
Прежде чем я подробно рассмотрю, мне интересно, все еще ли эта функция глючит, или мне следует начать запись с самого начала.
Там, где происходит эта «запись», просто объект создается как копия другого.