diff options
author | Tom de Vries <tdevries@suse.de> | 2025-03-13 07:41:51 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2025-03-13 07:41:51 +0100 |
commit | f9f033220046f011aeb259469cb15fe8141b213b (patch) | |
tree | 51e36d8d84e5088d57253697afb6375cb1d3d6c9 /gdb/loongarch-linux-tdep.c | |
parent | fbfb29b304ef7d3270a918b5fc60c22b0909367e (diff) | |
download | binutils-f9f033220046f011aeb259469cb15fe8141b213b.zip binutils-f9f033220046f011aeb259469cb15fe8141b213b.tar.gz binutils-f9f033220046f011aeb259469cb15fe8141b213b.tar.bz2 |
[gdb/record] Support recording syscall accept4
While reviewing the enum gdb_syscall entries with values >= 500, I noticed
that gdb_sys_accept exists, but gdb_sys_accept4 doesn't, while recording
support is essentially the same, given that the difference in interface is
only an extra int parameter:
...
int accept (int sockfd, struct sockaddr *addr, socklen_t *addrlen);
int accept4 (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags);
...
Fix this by:
- adding gdb_sys_accept4,
- supporting it in record_linux_system_call alongside gdb_sys_accept, and
- mapping to gdb_sys_accept4 in various syscall canonicalization functions.
The usual thing to do before the rewrite of i386_canonicalize_syscall would
have been to use the value from arch/x86/entry/syscalls/syscall_32.tbl:
...
gdb_sys_accept4 = 364,
...
but that's no longer necessary, so instead we use some >= 500 value:
...
gdb_sys_accept4 = 533,
...
to steer clear of the space where ppc_canonicalize_syscall and
s390_canonicalize_syscall do hard-coded number magic.
Tested on x86_64-linux, with and without target board unix/-m32, and
aarch64-linux.
Approved-By: Guinevere Larsen <guinevere@redhat.com>
Diffstat (limited to 'gdb/loongarch-linux-tdep.c')
-rw-r--r-- | gdb/loongarch-linux-tdep.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/loongarch-linux-tdep.c b/gdb/loongarch-linux-tdep.c index b18cacc..2168ce6 100644 --- a/gdb/loongarch-linux-tdep.c +++ b/gdb/loongarch-linux-tdep.c @@ -828,7 +828,7 @@ loongarch_canonicalize_syscall (enum loongarch_syscall syscall_number) SYSCALL_MAP (move_pages); UNSUPPORTED_SYSCALL_MAP (rt_tgsigqueueinfo); UNSUPPORTED_SYSCALL_MAP (perf_event_open); - UNSUPPORTED_SYSCALL_MAP (accept4); + SYSCALL_MAP (accept4); UNSUPPORTED_SYSCALL_MAP (recvmmsg); SYSCALL_MAP (wait4); UNSUPPORTED_SYSCALL_MAP (prlimit64); |