From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id AIByIe5CcWLeCgQAWB0awg (envelope-from ) for ; Tue, 03 May 2022 10:57:50 -0400 Received: by simark.ca (Postfix, from userid 112) id 8650C1E087; Tue, 3 May 2022 10:57:50 -0400 (EDT) Authentication-Results: simark.ca; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=OewWur9u; dkim-atps=neutral X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-3.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 2ABB71E058 for ; Tue, 3 May 2022 10:57:50 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CE3F53948A4E for ; Tue, 3 May 2022 14:57:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CE3F53948A4E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1651589869; bh=26H9EEMHkHobQpxzx1CMSUQz4+I7+pc2oYzc+M/7YAE=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=OewWur9uW+bga7sxeeVnzAriIbChKT/VvJRNCZHHIUGRRkoVL7LOddTCSyDRbSiZ8 EU1gzFd9Ch96x4EYeHjKnQrPdQf6dAcYP4921ztoWL5E9JrlPCJu/3MrnFXIGt8L7c F6D67dsaiGx/0T+zKsmMcZPAynxN84zHKYYMhgR4= Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by sourceware.org (Postfix) with ESMTPS id 857CE383602B for ; Tue, 3 May 2022 14:57:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 857CE383602B Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id A2274210F4 for ; Tue, 3 May 2022 14:57:19 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 8EF1313ABE for ; Tue, 3 May 2022 14:57:19 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 6UDMIc9CcWIadQAAMHmgww (envelope-from ) for ; Tue, 03 May 2022 14:57:19 +0000 Date: Tue, 3 May 2022 16:57:18 +0200 To: gdb-patches@sourceware.org Subject: [PATCH][gdb/tdep] Handle pipe2 syscall for amd64 Message-ID: <20220503145716.GA26696@delia.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Tom de Vries via Gdb-patches Reply-To: Tom de Vries Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" Hi, When running test-case gdb.reverse/pipe-reverse.exp on openSUSE Tumbleweed, I run into: ... (gdb) continue^M Continuing.^M Process record and replay target doesn't support syscall number 293^M Process record: failed to record execution log.^M ^M Program stopped.^M 0x00007ffff7daabdb in pipe () from /lib64/libc.so.6^M (gdb) FAIL: gdb.reverse/pipe-reverse.exp: continue to breakpoint: marker2 ... The current glibc on Tumbleweed is 2.35, which contains commit "linux: Implement pipe in terms of __NR_pipe2", and consequently syscall pipe2 is used in stead of syscall pipe. There is already support added for syscall pipe2 for aarch64 (which only has syscall pipe2, not syscall pipe), so enable the same for amd64, by: - adding amd64_sys_pipe2 in enum amd64_syscall - translating amd64_sys_pipe2 to gdb_sys_pipe2 in amd64_canonicalize_syscall Tested on x86_64-linux, specifically on: - openSUSE Tumbleweed (with glibc 2.35), and - openSUSE Leap 15.3 (with glibc 2.31). Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29056 Any comments? Thanks, - Tom [gdb/tdep] Handle pipe2 syscall for amd64 --- gdb/amd64-linux-tdep.c | 3 +++ gdb/amd64-linux-tdep.h | 1 + 2 files changed, 4 insertions(+) diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c index 0e5194fbeee..9a0759d639c 100644 --- a/gdb/amd64-linux-tdep.c +++ b/gdb/amd64-linux-tdep.c @@ -460,6 +460,9 @@ amd64_canonicalize_syscall (enum amd64_syscall syscall_number) case amd64_x32_sys_pipe: return gdb_sys_pipe; + case amd64_sys_pipe2: + return gdb_sys_pipe2; + case amd64_sys_select: case amd64_x32_sys_select: return gdb_sys_select; diff --git a/gdb/amd64-linux-tdep.h b/gdb/amd64-linux-tdep.h index 4a41b3b8245..184b0c86f07 100644 --- a/gdb/amd64-linux-tdep.h +++ b/gdb/amd64-linux-tdep.h @@ -320,6 +320,7 @@ enum amd64_syscall { amd64_sys_sync_file_range = 277, amd64_sys_vmsplice = 278, amd64_sys_move_pages = 279, + amd64_sys_pipe2 = 293 }; /* Enum that defines the syscall identifiers for x32 linux.