From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by sourceware.org (Postfix) with ESMTPS id EBCE9385E003 for ; Wed, 25 Mar 2020 21:02:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org EBCE9385E003 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=gmx.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=n54@gmx.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1585170154; bh=wTduU3Ag0OmgvQdCCKHz1U5mx1jDleYSvpuFPq2aCAQ=; h=X-UI-Sender-Class:To:References:From:Subject:Date:In-Reply-To; b=FTwyK9uU5SsnGaUMnEN+iQqxfUSyjTDBGOHou1SqRSQjtpm26wrntGYeaXBae0bc6 eiSrc3zb8vHFNgQ5Sso8EifUUZZyKJ6IRTR8jC4sH90+VXq1BcGkVeV6nr5RkzdeCd J1q0xqWTZaohmRofX9jfgz9u54YSKc0vyRl1SxPU= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.241] ([89.79.191.25]) by mail.gmx.com (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1M5fIQ-1jA5Me1Xly-007HDv; Wed, 25 Mar 2020 22:02:34 +0100 To: John Baldwin , gdb-patches@sourceware.org References: <20200325193646.29248-1-n54@gmx.com> <64888cf7-8aff-20df-db9e-72b911eebc99@FreeBSD.org> From: Kamil Rytarowski Autocrypt: addr=n54@gmx.com; prefer-encrypt=mutual; keydata= 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 4XSbcg== Subject: Re: [PATCH] Implement nbsd_nat_target::thread_alive Message-ID: <3349e5b4-d936-4597-7afe-4cef27216c93@gmx.com> Date: Wed, 25 Mar 2020 22:01:27 +0100 User-Agent: Mozilla/5.0 (X11; NetBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <64888cf7-8aff-20df-db9e-72b911eebc99@FreeBSD.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:OyJ0e1ZlpAeZXr7swwXstyMQ9ly/9citZFhWEFRc+bXZyT68aZA 77AQUxrMqhPHDJZQyuLJvGupG3TxuzID1XwIop/nuCla3Xf3O6PR9C82j7OD4/JMTE5jbSk wQwmEDXBP51vgt1jHOjE0l2+vOXGgMAT3vaKT5J3fVxmMNs7z6mDCeluIhksY5C1Y6YkRdh WkrvvSfqdRntdGBrGintg== X-UI-Out-Filterresults: notjunk:1;V03:K0:gKk/VX8ssMY=:GzoTJxH8ybBw+/2KsoHxq9 Tf79MI0YSn2q8CcizugJ6DxGhVfe9I3to6RFIfj7DYXdKcmLSx6zufESvB9oI+A7Xl+6s56yi vPqi4H8vhqDoa5afJue+/LZrRvLqUGRmb0Ejm9EGDCIl1v3wjX1OS/WnRy9j3u2D2FeurCJUx A1BeDdwc0qa46X6T/QMC5IcQkZtkWtTSkwztftVxDvfHJ5J58V/0tdOkZgpb+wGGIzfzz093t jI3yiMsPKsfH16JFiUKDt21JEr1i7Wj+KAtr+N74ILh3ENJTdQMLWOfI5Eiq3wGwVx6vCxyzL ddoUc2BD1E8PttZW37vLxAtBvNZSPjyuV8YjLRpU7luxlAOCIkDzibAmhT9FaT0XZQSePoraL 4gXo/1bGAM+Tf2FFo308GfCEeVwiR35BOWLdLUDditb/e9mWVDBSRYMSgWqpTq3yEac+mZ9J3 NaKI21a7pDkj3waZE0vBOXMy4LYyhtnk3EePk32/QJryeVGaBwKMR1D94r64b/kpYILGTf+/r J5nGuq+Sxy36QTclOevnNXrlrzqhGH10dE+UYs455CxHj/y7ozldRjmxlKp3eKBNjD9/jEPSy iBkSRNCn96ojNUlmukXmMCMqALwcJDlzUkBuYqnuaHeuqd4Hx6/k7ani8i4iO4NRP3ayNg3en k5YS2UCXee/f5r6bEYsc6cGzbDKDzpR9OLMdXCyQTsvCPJsHZOuwXg2pq3W7inFyPvqe6ctMW c2MXmSjvEt2CtYNOK6n5sYnUjX4c6+BGn77HVMUqfV8Hk5V1/TjG/24ZUtvQfSV/SJJZR8kXP 9BNZkXZPxCuMJHC6OQzYd3RPnGJvgE32+M3modNBPj2QehGGa3oRHqjGXWfeHYH1pXBsGI02/ wC07SNC0IrZrn47DTfmsdSmO4TxkjFo72WdcyzBPnp57U74iq5BdT/W6cN7Avebmcfhdplx6j eHiG9wN2tl3sr4Fj7fi7KSHpkh6hJMfRJmjHLZDdWUZ3HGkg01XpfPlCWqgjFZofNB+UKxryL o4raxlU44VQF8fUVH/McU8NisjlhqYPXrp0U4q65DBbj1zNNcwX2G+d39HF+OoZkuqDD5iCTk KWEGorDpk28/e8tSKT3ooFlEPSt9B7gYhNlhhBH6IT0/VoTZuvd79OUhHq/gA59ne5Rd3DKt7 l7kmBkejw7P93+0UkAUTu9HGy9avu8lSgXUxV8W/qekQZ8c9YRFF+VOLTok5O01+/OKlY= X-Spam-Status: No, score=-33.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org 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: , X-List-Received-Date: Wed, 25 Mar 2020 21:02:48 -0000 On 25.03.2020 21:42, John Baldwin wrote: > On 3/25/20 12:36 PM, Kamil Rytarowski wrote: >> gdb/ChangeLog: >> >> * nbsd-nat.h (nbsd_nat_target::thread_alive): Add. >> * nbsd-nat.c (nbsd_nat_target::thread_alive): Add. >> --- >> gdb/ChangeLog | 5 +++++ >> gdb/nbsd-nat.c | 30 ++++++++++++++++++++++++++++++ >> gdb/nbsd-nat.h | 1 + >> 3 files changed, 36 insertions(+) >> >> diff --git a/gdb/ChangeLog b/gdb/ChangeLog >> index 1ee58a541cb..d6789f4d7ca 100644 >> --- a/gdb/ChangeLog >> +++ b/gdb/ChangeLog >> @@ -1,3 +1,8 @@ >> +2020-03-25 Kamil Rytarowski >> + >> + * nbsd-nat.h (nbsd_nat_target::thread_alive): Add. >> + * nbsd-nat.c (nbsd_nat_target::thread_alive): Add. >> + >> 2020-03-25 Tom Tromey >> >> * compile/compile-object-load.c (get_out_value_type): Mention >> diff --git a/gdb/nbsd-nat.c b/gdb/nbsd-nat.c >> index 326bbe3aec3..aa0353309df 100644 >> --- a/gdb/nbsd-nat.c >> +++ b/gdb/nbsd-nat.c >> @@ -39,3 +39,33 @@ nbsd_nat_target::pid_to_exec_file (int pid) >> return NULL; >> return buf; >> } >> + >> +bool >> +thread_alive (ptid_t ptid) >> +{ >> + pid_t pid =3D ptid.pid (); >> + int lwp =3D ptid.lwp (); >> + int mib[5] =3D {CTL_KERN, KERN_LWP, pid, sizeof (struct kinfo_lwp), = 0}; >> + size_t size; >> + >> + if (sysctl (mib, 5, NULL, &size, NULL, 0) =3D=3D -1 || size =3D=3D 0= ) >> + perror_with_name (("sysctl")); >> + >> + mib[4] =3D size / sizeof (size_t); >> + >> + gdb::unique_xmalloc_ptr kl >> + ((struct kinfo_lwp *) xcalloc (size, 1)); >> + if (kl =3D=3D NULL) >> + perror_with_name (("calloc")); >> + >> + if (sysctl (mib, 5, kl.get (), &size, NULL, 0) =3D=3D -1 || size =3D= =3D 0) >> + perror_with_name (("sysctl")); >> + >> + for (size_t i =3D 0; i < size / sizeof (struct kinfo_lwp); i++) >> + { >> + if (kl.get ()[i].l_lid =3D=3D lwp) >> + return true; >> + } >> + >> + return false; > > Given that you have nearly identical code both here and in the thread_na= me > method in your other patch, perhaps it makes sense to have a single > "gdb::unique_xmalloc_ptr fetch_kinfo_lwp(ptid_t ptid)= " > helper function that the other routines could share? Perhaps instead of > just returning the pointer to the array of structures it could take a la= mda > function that is invoked on the matching 'kl' instance with the correct = lwp? > I can do it. I will submit these two patches in one go. I will also add a third similar function to list threads within a process. Normally, I would go for PT_LWPSTATUS, but it is available since NetBSD >10 and for the time being sysctl(3) is more portable.