Обратная отладка GDB завершается с ошибкой «Запись процесса не поддерживает инструкцию 0xf0d по адресу» - PullRequest
6 голосов
/ 27 марта 2010

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

1 голос
/ 18 июня 2010

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

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

0 голосов

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

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

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

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

0 голосов
/ 27 марта 2010

Похоже, что precord все еще глючит.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...