]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
[gdb/tdep] Handle syscall clock_gettime64 for arm-linux
authorTom de Vries <tdevries@suse.de>
Wed, 13 Nov 2024 21:41:35 +0000 (22:41 +0100)
committerTom de Vries <tdevries@suse.de>
Wed, 13 Nov 2024 21:41:35 +0000 (22:41 +0100)
commit580f291cb804c65d9bcbdd0e618233f8bee0c2ff
tree8e9e08e682f6022ff5ccc08289b700a3cac4be54
parent5cb0406bb64da200520ab3a9ee8f2a3c58ea6be0
[gdb/tdep] Handle syscall clock_gettime64 for arm-linux

When running test-case gdb.reverse/time-reverse.exp on arm-linux, I run into:
...
(gdb) continue^M
Continuing.^M
Process record and replay target doesn't support syscall number 403^M
Process record does not support instruction 0xdf00 at address 0xf7ebf774.^M
Process record: failed to record execution log.^M
^M
Program stopped.^M
0xf7ebf774 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6^M
(gdb) FAIL: $exp: mode=c: continue to breakpoint: marker2
...

Syscall number 403 stands for clock_gettime64 on arm-linux.

Fix this by handling 403 in arm_canonicalize_syscall, and handling
gdb_sys_clock_gettime64 elsewhere.

Since i386_canonicalize_syscall is the identity function, enum value
gdb_sys_clock_gettime64 gets a value to match i386, which also happens to be
403.

Tested on arm-linux.

Approved-By: Guinevere Larsen <guinevere@redhat.com> (record-full)
gdb/arm-linux-tdep.c
gdb/linux-record.c
gdb/linux-record.h