From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 112086 invoked by alias); 23 Feb 2016 09:19:02 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 112061 invoked by uid 89); 23 Feb 2016 09:19:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=sk:fstatat, UD:fstatat-reverse.exp, mount, 4548 X-HELO: mail-pf0-f172.google.com Received: from mail-pf0-f172.google.com (HELO mail-pf0-f172.google.com) (209.85.192.172) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Tue, 23 Feb 2016 09:19:00 +0000 Received: by mail-pf0-f172.google.com with SMTP id e127so109376102pfe.3 for ; Tue, 23 Feb 2016 01:19:00 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id; bh=4bgRsraDI4abS0vw7Pq4BrXPewH8Z+/g2czgNsY257Q=; b=I+K6gY4nLOGGnBH3rIaBrxRfFuTIhMNV7di1Bozqrf/LYyqsPrP3XNpmlOFRaWig+e H6L0DUlqkYh/mbflrImdJzZMJ9xUHznrZFWdhTctfip0DAggGkVjpLF/4A7jjKU+z6Fh SXdWXkG+19qoyTNrbZaVdYsuB3gO5+UbVCPoCFNo3DXNk5o73PRxgr/ZqqHgU/pqgEjF /gFrxP//NWo5ztt6bSvJhYBCmO4xi1aNYbNOXPzAS0bTOxj/5NBJsdjRi3Uf1kr/OAqT epQtsBhq+U+s0eZUIvbXcv/CZ0iLf1IuAMoH+KIVZ6+hpZkbVLDQGSujmTvGOwU13dfv m4mw== X-Gm-Message-State: AG10YOQIcBt4+wWQ5CHpvEv+R3MG2w57Mnc5PQQi6H5Bn4iGJWNwvy/TNbaP3WOb7azBaQ== X-Received: by 10.98.69.1 with SMTP id s1mr44111165pfa.120.1456219138676; Tue, 23 Feb 2016 01:18:58 -0800 (PST) Received: from E107787-LIN.cambridge.arm.com (gcc1-power7.osuosl.org. [140.211.15.137]) by smtp.gmail.com with ESMTPSA id e20sm42535313pfd.4.2016.02.23.01.18.57 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 23 Feb 2016 01:18:57 -0800 (PST) From: Yao Qi X-Google-Original-From: Yao Qi To: gdb-patches@sourceware.org Subject: [PATCH] Process record for aarch64-linux syscall Date: Tue, 23 Feb 2016 09:19:00 -0000 Message-Id: <1456219131-2781-1-git-send-email-yao.qi@linaro.org> X-IsSubscribed: yes X-SW-Source: 2016-02/txt/msg00680.txt.bz2 This patch updates the syscalls in sync with syscalls/aarch64-linux.xml. Some syscalls are still not supported by gdb/linux-record.c yet. Mark them UNSUPPORTED_SYSCALL_MAP. This patch fixes the following test fail, Process record and replay target doesn't support syscall number 56^M Process record: failed to record execution log.^M ^M Program stopped.^M 0x00000020000e9dfc in open () from /lib/aarch64-linux-gnu/libc.so.6^M (gdb) FAIL: gdb.reverse/fstatat-reverse.exp: continue to breakpoint: marker2 I'll push it in. gdb: 2016-02-23 Yao Qi * aarch64-linux-tdep.c (enum aarch64_syscall) : Remove. : Remove. : Remove. : New. : New. : New. : Remove. : New. : New. (UNSUPPORTED_SYSCALL_MAP): New macro. (aarch64_canonicalize_syscall): Add missing syscalls. --- gdb/aarch64-linux-tdep.c | 72 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 11 deletions(-) diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c index 9d082e8..50c9c3f 100644 --- a/gdb/aarch64-linux-tdep.c +++ b/gdb/aarch64-linux-tdep.c @@ -409,12 +409,12 @@ enum aarch64_syscall { aarch64_sys_ioprio_set = 30, aarch64_sys_ioprio_get = 31, aarch64_sys_flock = 32, - aarch64_sys_mknod = 33, - aarch64_sys_mkdir = 34, - aarch64_sys_unlink = 35, - aarch64_sys_symlink = 36, - aarch64_sys_link = 37, - aarch64_sys_rename = 38, + aarch64_sys_mknodat = 33, + aarch64_sys_mkdirat = 34, + aarch64_sys_unlinkat = 35, + aarch64_sys_symlinkat = 36, + aarch64_sys_linkat = 37, + aarch64_sys_renameat = 38, aarch64_sys_umount2 = 39, aarch64_sys_mount = 40, aarch64_sys_pivot_root = 41, @@ -424,7 +424,7 @@ enum aarch64_syscall { aarch64_sys_truncate = 45, aarch64_sys_ftruncate = 46, aarch64_sys_fallocate = 47, - aarch64_sys_faccess = 48, + aarch64_sys_faccessat = 48, aarch64_sys_chdir = 49, aarch64_sys_fchdir = 50, aarch64_sys_chroot = 51, @@ -432,7 +432,7 @@ enum aarch64_syscall { aarch64_sys_fchmodat = 53, aarch64_sys_fchownat = 54, aarch64_sys_fchown = 55, - aarch64_sys_open = 56, + aarch64_sys_openat = 56, aarch64_sys_close = 57, aarch64_sys_vhangup = 58, aarch64_sys_pipe2 = 59, @@ -454,8 +454,8 @@ enum aarch64_syscall { aarch64_sys_vmsplice = 75, aarch64_sys_splice = 76, aarch64_sys_tee = 77, - aarch64_sys_readlink = 78, - aarch64_sys_fstatat = 79, + aarch64_sys_readlinkat = 78, + aarch64_sys_newfstatat = 79, aarch64_sys_fstat = 80, aarch64_sys_sync = 81, aarch64_sys_fsync = 82, @@ -648,6 +648,9 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number) #define SYSCALL_MAP(SYSCALL) case aarch64_sys_##SYSCALL: \ return gdb_sys_##SYSCALL +#define UNSUPPORTED_SYSCALL_MAP(SYSCALL) case aarch64_sys_##SYSCALL: \ + return gdb_sys_no_syscall + switch (syscall_number) { SYSCALL_MAP (io_setup); @@ -670,6 +673,7 @@ 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; @@ -677,26 +681,40 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number) SYSCALL_MAP (epoll_ctl); SYSCALL_MAP (epoll_pwait); SYSCALL_MAP (dup); + UNSUPPORTED_SYSCALL_MAP (dup3); SYSCALL_MAP (fcntl); + UNSUPPORTED_SYSCALL_MAP (inotify_init1); SYSCALL_MAP (inotify_add_watch); SYSCALL_MAP (inotify_rm_watch); SYSCALL_MAP (ioctl); SYSCALL_MAP (ioprio_set); SYSCALL_MAP (ioprio_get); SYSCALL_MAP (flock); + SYSCALL_MAP (mknodat); + SYSCALL_MAP (mkdirat); + SYSCALL_MAP (unlinkat); + SYSCALL_MAP (symlinkat); + SYSCALL_MAP (linkat); + SYSCALL_MAP (renameat); + UNSUPPORTED_SYSCALL_MAP (umount2); SYSCALL_MAP (mount); + SYSCALL_MAP (pivot_root); SYSCALL_MAP (nfsservctl); SYSCALL_MAP (statfs); SYSCALL_MAP (truncate); SYSCALL_MAP (ftruncate); + UNSUPPORTED_SYSCALL_MAP (fallocate); + SYSCALL_MAP (faccessat); SYSCALL_MAP (fchdir); SYSCALL_MAP (chroot); SYSCALL_MAP (fchmod); SYSCALL_MAP (fchmodat); SYSCALL_MAP (fchownat); SYSCALL_MAP (fchown); + SYSCALL_MAP (openat); SYSCALL_MAP (close); SYSCALL_MAP (vhangup); + UNSUPPORTED_SYSCALL_MAP (pipe2); SYSCALL_MAP (quotactl); SYSCALL_MAP (getdents64); SYSCALL_MAP (lseek); @@ -706,17 +724,27 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number) SYSCALL_MAP (writev); SYSCALL_MAP (pread64); SYSCALL_MAP (pwrite64); + UNSUPPORTED_SYSCALL_MAP (preadv); + UNSUPPORTED_SYSCALL_MAP (pwritev); SYSCALL_MAP (sendfile); SYSCALL_MAP (pselect6); SYSCALL_MAP (ppoll); + UNSUPPORTED_SYSCALL_MAP (signalfd4); SYSCALL_MAP (vmsplice); SYSCALL_MAP (splice); SYSCALL_MAP (tee); + SYSCALL_MAP (readlinkat); + SYSCALL_MAP (newfstatat); + SYSCALL_MAP (fstat); SYSCALL_MAP (sync); SYSCALL_MAP (fsync); SYSCALL_MAP (fdatasync); SYSCALL_MAP (sync_file_range); + UNSUPPORTED_SYSCALL_MAP (timerfd_create); + UNSUPPORTED_SYSCALL_MAP (timerfd_settime); + UNSUPPORTED_SYSCALL_MAP (timerfd_gettime); + UNSUPPORTED_SYSCALL_MAP (utimensat); SYSCALL_MAP (acct); SYSCALL_MAP (capget); SYSCALL_MAP (capset); @@ -796,6 +824,7 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number) SYSCALL_MAP (getrusage); SYSCALL_MAP (umask); SYSCALL_MAP (prctl); + SYSCALL_MAP (getcpu); SYSCALL_MAP (gettimeofday); SYSCALL_MAP (settimeofday); SYSCALL_MAP (adjtimex); @@ -870,7 +899,28 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number) SYSCALL_MAP (set_mempolicy); SYSCALL_MAP (migrate_pages); SYSCALL_MAP (move_pages); - + UNSUPPORTED_SYSCALL_MAP (rt_tgsigqueueinfo); + UNSUPPORTED_SYSCALL_MAP (perf_event_open); + UNSUPPORTED_SYSCALL_MAP (accept4); + UNSUPPORTED_SYSCALL_MAP (recvmmsg); + + SYSCALL_MAP (wait4); + + UNSUPPORTED_SYSCALL_MAP (prlimit64); + UNSUPPORTED_SYSCALL_MAP (fanotify_init); + UNSUPPORTED_SYSCALL_MAP (fanotify_mark); + UNSUPPORTED_SYSCALL_MAP (name_to_handle_at); + UNSUPPORTED_SYSCALL_MAP (open_by_handle_at); + UNSUPPORTED_SYSCALL_MAP (clock_adjtime); + UNSUPPORTED_SYSCALL_MAP (syncfs); + UNSUPPORTED_SYSCALL_MAP (setns); + UNSUPPORTED_SYSCALL_MAP (sendmmsg); + UNSUPPORTED_SYSCALL_MAP (process_vm_readv); + UNSUPPORTED_SYSCALL_MAP (process_vm_writev); + UNSUPPORTED_SYSCALL_MAP (kcmp); + UNSUPPORTED_SYSCALL_MAP (finit_module); + UNSUPPORTED_SYSCALL_MAP (sched_setattr); + UNSUPPORTED_SYSCALL_MAP (sched_getattr); default: return gdb_sys_no_syscall; } -- 1.9.1