Я пытаюсь использовать 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, генерируемого при недопустимом чтении / записи.
Это действительно ошибка, или я делаю что-то неправильно / не поддерживается?