Обратная отладка GDB завершается с ошибкой "Запись процесса не поддерживает инструкцию 0xf0d по адресу"

Я начал пробовать обратную отладку с помощью 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

Прежде чем я подробно рассмотрю, мне хотелось бы знать, не глючит ли эта функция, или мне следует начать запись с самого начала.

Там, где происходит эта "запись" ошибки, просто объект создается как копия другого.

3 ответа

AVX не поддерживается с GDB 7.11.1

Может быть, это та же проблема, что и в:

так как в вашей трассировке упоминается memcpy, который использует инструкции AVX в Ubuntu 16.04, но трудно быть уверенным без минимального примера.

rr отличная рабочая альтернатива: https://github.com/mozilla/rr Вот минимальный рабочий пример: установка точки останова в GDB, где функция возвращает

Это потому, что этот insn по-прежнему не поддерживается предварительно.

Это исправлено сейчас. Вы можете попробовать gdb-cvs-head.

Звучит как precord все еще глючит.

Пожалуйста, убедитесь, что вы используете последнюю версию GDB 7.1, и сообщите об ошибке. Выход из x/i 0x2aaaab4c4b4e скорее всего будет полезно. Так будет точный дистрибутив и версии GCC и libc.so.6

Другие вопросы по тегам