From patchwork Tue May 14 14:53:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Navin P X-Patchwork-Id: 90123 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 22DC83875448 for ; Tue, 14 May 2024 14:54:15 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by sourceware.org (Postfix) with ESMTPS id 53E17384AB5C for ; Tue, 14 May 2024 14:53:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 53E17384AB5C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 53E17384AB5C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::635 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715698422; cv=none; b=OpXbccG+WBLSPJj8fjI1JtksH1FmTkwlcxBCjzHjPSnjWbQEJ42BrQHln8TtcYb3m8Bbe5ZSGBF3mu+c2HGVCFNkT+L28KpUq3zV/zSC16zbrwEmqL3psMEDFaODQ31uljkksWTniXtzcIKU6fnjTfg3PocwjKyRAQK71IZqfpU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715698422; c=relaxed/simple; bh=q3tdZLPDZHCpQajX4m19a7aBg9rVGigcwkQ2OsS2kOE=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=q4WqIloUCC7NSz5sQuGRmrnP71mIVcIn2x/5tmoS9mNRlJpzAoAXnxv3OO3XaG05Iws4TGk6fRKGtG/HQ5ljBptpmb6r4hKr/xQ+L+6js2no9k49RMWqUu9ddQYi+AcyGc526CrhGEpTpW5p5ftmv5GxDJ+Gxgucfmq7RfyncGQ= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-1ec486198b6so43195205ad.1 for ; Tue, 14 May 2024 07:53:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715698419; x=1716303219; darn=sourceware.org; h=content-transfer-encoding:subject:from:to:content-language :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=CHGYuCi/ULC6PBJPJsesgo7GR07hL3X9LtvzKpYcwwU=; b=hlvifqLtRnnkwgA5l7VKlFMszHWUpyM2LPNnPPLVnPXaCUI6TsFpt8kAHZwBpDEE5Z /DJ1gSgPITK4viJokAa3DABELZu5FsDiA7eUW5PKZbJ91x+0i+8IDkMfG3uss5Ai2mbV vlHwUQ3qZRCVuc/k6Jd+4OWmu1w/TquZkqSSgO2ephN6RrozzfVmBSfBZpWoWyr8X8Ie /PXpit8JTDQHWsnkZmeo6uzVw4vOrMsgs4e3o+8bPRqI12ByMBs7PaN2eT9hiaPIn+Up l7prRt4oas0VzuDb0e2yburZH1PlFBVK+kvuTHO/bax1/X+OiYTUFlniDhNO7j6Liqz1 pHvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715698419; x=1716303219; h=content-transfer-encoding:subject:from:to:content-language :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=CHGYuCi/ULC6PBJPJsesgo7GR07hL3X9LtvzKpYcwwU=; b=hJ1AjV5kXmbUhE4yCiGKqfs9uHL1MCJJYxnOVv6R1J+UFvf2iWKWmp4gZbs7T+joD0 nlgGCEYmKSTmBsQ+pwzx0V1mPEcENF5XYqFu+UKZEXaZlGdZEpA0gy8wnxoxEKRr/TGU jus6unjOD10Iapx9AVLqlhKQfCeOAIhqALL4BCzFk7Pqu1Tn1FDm1e4UU0zwGeaybr3y gv3X3lyd0XWg9yMq8pcPsNeYm44drJ4hs0TLpe2f1YlYs3WxEqfDwYFdVXU4mtFzBNVc HOVKAvQl6VpWbxvF/1aFYYNCJEz62USZm3yLJ57p5NAGv3Zx6L1Nfq6KtAwM/RXlcD7R lRQQ== X-Gm-Message-State: AOJu0YzJXdxeiQ6o6Yf0cACUWT36BWcWZlM3teEZo4IHxaVBauSSbVNG 9sv4AHRTuIQGbYsgT3ufQdXwJbgm9Et6ClhE1qd0EESdOhHLQ23LepFRWJLf X-Google-Smtp-Source: AGHT+IH10STdp4qYF98rS3L10IDX7dZF4JSDuI7NDo7/WtAVQMAm+pWiVc+C19p3M7YGut6L7GBH6w== X-Received: by 2002:a17:903:1c7:b0:1e0:119e:f935 with SMTP id d9443c01a7336-1ef43e2810dmr145076825ad.15.1715698418832; Tue, 14 May 2024 07:53:38 -0700 (PDT) Received: from ?IPV6:2405:201:c001:d16d:b96e:bbba:720b:28dd? ([2405:201:c001:d16d:b96e:bbba:720b:28dd]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1ef0c13908bsm98665025ad.265.2024.05.14.07.53.37 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 14 May 2024 07:53:38 -0700 (PDT) Message-ID: Date: Tue, 14 May 2024 20:23:36 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: gdb-patches@sourceware.org From: Navin P Subject: [PATCH] Adding clone3 and rseq system call support in gdb record mode X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Hi, Please review the patch for adding clone3 and rseq system call in gdb record mode.This starts new lwp process for threads. Without this change gdb stops execution saying unsupported systemcall. I've created 2 new entries for clone3 and rseq system call in the below files. Regards, Navin --- gdb/amd64-linux-tdep.c | 8 ++++++++ gdb/amd64-linux-tdep.h | 6 +++++- gdb/linux-record.c | 6 ++++++ gdb/linux-record.h | 2 ++ 4 files changed, 21 insertions(+), 1 deletion(-) -- diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c index c52b0436872..545c880f02d 100644 --- a/gdb/amd64-linux-tdep.c +++ b/gdb/amd64-linux-tdep.c @@ -1435,6 +1435,14 @@ amd64_canonicalize_syscall (enum amd64_syscall syscall_number) case amd64_x32_sys_move_pages: return gdb_sys_move_pages; + case amd64_sys_clone3: + case amd64_x32_sys_clone3: + return gdb_sys_clone3; + + case amd64_sys_rseq: + case amd64_x32_sys_rseq: + return gdb_sys_rseq; + default: return gdb_sys_no_syscall; } diff --git a/gdb/amd64-linux-tdep.h b/gdb/amd64-linux-tdep.h index 2003dcda78f..7aae17d9926 100644 --- a/gdb/amd64-linux-tdep.h +++ b/gdb/amd64-linux-tdep.h @@ -321,7 +321,9 @@ enum amd64_syscall { amd64_sys_vmsplice = 278, amd64_sys_move_pages = 279, amd64_sys_pipe2 = 293, - amd64_sys_getrandom = 318 + amd64_sys_getrandom = 318, + amd64_sys_clone3 = 435, + amd64_sys_rseq = 334, }; /* Enum that defines the syscall identifiers for x32 linux. @@ -571,6 +573,8 @@ enum amd64_x32_syscall { amd64_x32_sys_splice = (amd64_x32_syscall_bit + 275), amd64_x32_sys_tee = (amd64_x32_syscall_bit + 276), amd64_x32_sys_sync_file_range = (amd64_x32_syscall_bit + 277), + amd64_x32_sys_rseq = (amd64_x32_syscall_bit + 334), + amd64_x32_sys_clone3 = (amd64_x32_syscall_bit + 435), amd64_x32_sys_rt_sigaction = (amd64_x32_syscall_bit + 512), amd64_x32_sys_rt_sigreturn = (amd64_x32_syscall_bit + 513), amd64_x32_sys_ioctl = (amd64_x32_syscall_bit + 514), diff --git a/gdb/linux-record.c b/gdb/linux-record.c index 549ea1bd713..051e8560165 100644 --- a/gdb/linux-record.c +++ b/gdb/linux-record.c @@ -2047,6 +2047,12 @@ Do you want to stop the program?"), case gdb_sys_inotify_init1: break; + case gdb_sys_clone3: + break; + + case gdb_sys_rseq: + break; + default: gdb_printf (gdb_stderr, _("Process record and replay target doesn't " diff --git a/gdb/linux-record.h b/gdb/linux-record.h index 962cedc3d34..c75c5b80c7b 100644 --- a/gdb/linux-record.h +++ b/gdb/linux-record.h @@ -541,6 +541,8 @@ enum gdb_syscall { gdb_sys_msgctl = 531, gdb_sys_semtimedop = 532, gdb_sys_newfstatat = 540, + gdb_sys_clone3 = 541, + gdb_sys_rseq = 542, }; /* Record a linux syscall. */