This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 2/2] aarch64-linux process record: more syscalls
- From: Yao Qi <qiyaoltc at gmail dot com>
- To: gdb-patches at sourceware dot org
- Date: Wed, 24 Feb 2016 08:24:23 +0000
- Subject: [PATCH 2/2] aarch64-linux process record: more syscalls
- Authentication-results: sourceware.org; auth=none
- References: <1456302263-18203-1-git-send-email-yao dot qi at linaro dot org>
The last patch supports several syscalls in linux-record.c, so now
GDB aarch64-linux backend can return these canonicalized syscall numbers
per aarch64 syscall number.
This patch fixes the following fails,
Process record and replay target doesn't support syscall number 59^M
Process record: failed to record execution log.^M
^M
Program stopped.^M
0x00000020000eab28 in pipe () from /lib/aarch64-linux-gnu/libc.so.6^M
(gdb) FAIL: gdb.reverse/pipe-reverse.exp: continue to breakpoint: marker2
Process record and replay target doesn't support syscall number 59^M
Process record: failed to record execution log.^M
^M
Program stopped.^M
0x00000020000eab28 in pipe () from /lib/aarch64-linux-gnu/libc.so.6^M
(gdb) FAIL: gdb.reverse/readv-reverse.exp: continue to breakpoint: marker2
gdb:
2016-02-24 Yao Qi <yao.qi@linaro.org>
* aarch64-linux-tdep.c (aarch64_canonicalize_syscall): Support
eventfd2, eventfd2, dup3, inotify_init1, fallocate and pipe2.
Return gdb_sys_epoll_create1 instead of gdb_sys_epoll_create
for aarch64_sys_epoll_create1.
---
gdb/aarch64-linux-tdep.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c
index 50c9c3f..651a0f0 100644
--- a/gdb/aarch64-linux-tdep.c
+++ b/gdb/aarch64-linux-tdep.c
@@ -673,17 +673,14 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
SYSCALL_MAP (fremovexattr);
SYSCALL_MAP (getcwd);
SYSCALL_MAP (lookup_dcookie);
- UNSUPPORTED_SYSCALL_MAP (eventfd2);
-
- case aarch64_sys_epoll_create1:
- return gdb_sys_epoll_create;
-
+ SYSCALL_MAP (eventfd2);
+ SYSCALL_MAP (epoll_create1);
SYSCALL_MAP (epoll_ctl);
SYSCALL_MAP (epoll_pwait);
SYSCALL_MAP (dup);
- UNSUPPORTED_SYSCALL_MAP (dup3);
+ SYSCALL_MAP (dup3);
SYSCALL_MAP (fcntl);
- UNSUPPORTED_SYSCALL_MAP (inotify_init1);
+ SYSCALL_MAP (inotify_init1);
SYSCALL_MAP (inotify_add_watch);
SYSCALL_MAP (inotify_rm_watch);
SYSCALL_MAP (ioctl);
@@ -703,7 +700,7 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
SYSCALL_MAP (statfs);
SYSCALL_MAP (truncate);
SYSCALL_MAP (ftruncate);
- UNSUPPORTED_SYSCALL_MAP (fallocate);
+ SYSCALL_MAP (fallocate);
SYSCALL_MAP (faccessat);
SYSCALL_MAP (fchdir);
SYSCALL_MAP (chroot);
@@ -714,7 +711,7 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
SYSCALL_MAP (openat);
SYSCALL_MAP (close);
SYSCALL_MAP (vhangup);
- UNSUPPORTED_SYSCALL_MAP (pipe2);
+ SYSCALL_MAP (pipe2);
SYSCALL_MAP (quotactl);
SYSCALL_MAP (getdents64);
SYSCALL_MAP (lseek);
--
1.9.1