问题
i started to try reverse debugging with gdb 7, followin the tutorial:
http://www.sourceware.org/gdb/wiki/ProcessRecord/Tutorial
and I thought, great!
Then I started to debug a real program which gives an error at the end. So I run it with gdb, and I put a breakpoint just before the place I think the error appears. Then I type "record" in order to start to recrd actions for future reverse-debugging. But after some steps I get
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
Before I look at in in detail, I wonder if this feature is still buggy, or if I should start to record from the beginning.
Where this "record" error happens, just an object is created as a copy of other.
回答1:
This is because this insn is still not support by prec.
It is fixed now. You can try the gdb-cvs-head.
回答2:
AVX is not supported as of GDB 7.11.1
Maybe this is the same problem as mentioned at:
- gdb reverse debugging avx2
- https://sourceware.org/ml/gdb/2016-08/msg00028.html
since your trace mentions memcpy, which uses AVX instructions in Ubuntu 16.04, but it is hard to be sure without a minimal example.
rr
is an awesome working alternative: https://github.com/mozilla/rr Here is a minimal working example: Setting breakpoint in GDB where the function returns
回答3:
Sounds like precord
is still buggy.
Please make sure you are using the latest released GDB 7.1, and file a bug. Output from x/i 0x2aaaab4c4b4e
will likely be helpful. So will be exact distribution and versions of GCC and libc.so.6
来源:https://stackoverflow.com/questions/2528918/gdb-reverse-debugging-fails-with-process-record-does-not-support-instruction-0x