GDB не может записать выполнение в vgdb - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь использовать gdb для записи выполнения в gdbserver valgrind следующим образом:

valgrind --vgdb-error=0 path/to/binary args
$ gdb path/to/binary
(gdb) target remote | vgdb
0x0000000004001090 in _start () from /lib64/ld-linux-x86-64.so.2
(gdb) target record-full
(gdb) c
Continuing.
/build/gdb-GT4MLW/gdb-8.1/gdb/target.c:3132: internal-error: gdbarch* default_thread_architecture(target_ops*, ptid_t): Assertion `inf != NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) n

This is a bug, please report it.  For instructions, see:
<http://www.gnu.org/software/gdb/bugs/>.

/build/gdb-GT4MLW/gdb-8.1/gdb/target.c:3132: internal-error: gdbarch* default_thread_architecture(target_ops*, ptid_t): Assertion `inf != NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Create a core file of GDB? (y or n) n
Command aborted.
(gdb)

Я надеялся использовать записанное выполнение, чтобы установить точку наблюдения для чтения / записи и выполнить обратное выполнение, чтобы увидеть, где она используется. Я работал с gdbserver от valgrind для прерывания SIGTRAP, генерируемого при недопустимом чтении / записи.

Это действительно ошибка, или я делаю что-то неправильно / не поддерживается?

1 Ответ

1 голос
/ 03 апреля 2019

Valgrind gdbserver не поддерживает запись.

См. http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver-limitations

...