From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by sourceware.org (Postfix) with ESMTPS id 5D975387702C for ; Thu, 19 Mar 2020 12:48:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 5D975387702C 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=1584622106; bh=LpKsirFCe8MTKgzMy7V1WJHoJnh28gp+NqfM8pfRbHA=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=VQF6kcY0eN1NgPkwvq/F+xZB7PINF3HGsQ76V5uTY/3A+np+rD9TgRvAbUIcav4T1 roFHsh3ZlFQCmJnt3g5Gbu+CLIUU4QmVKKLvXVfaEudMgy18EOru9CzyTeuYXGC04k pXj7xiiZdF0vV3CMUHKCTkg+SXUXPgICHu0K8D0A= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.241] ([89.79.191.25]) by mail.gmx.com (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MOiHl-1ivKbd15t1-00QDwV; Thu, 19 Mar 2020 13:48:26 +0100 Subject: Re: [PATCH] Avoid get_ptrace_pid() usage on NetBSD in x86-bsd-nat.c To: Simon Marchi , gdb-patches@sourceware.org References: <20200318161328.24088-1-n54@gmx.com> <6b3250d6-027d-46c7-2884-569d9a0aaa13@simark.ca> From: Kamil Rytarowski Autocrypt: addr=n54@gmx.com; prefer-encrypt=mutual; keydata= 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 4XSbcg== Message-ID: <3048d145-21f9-161c-f6fd-7214c7b13a48@gmx.com> Date: Thu, 19 Mar 2020 13:47:13 +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: <6b3250d6-027d-46c7-2884-569d9a0aaa13@simark.ca> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="TaQAnEQqGbMdO1AQpEkcDznQzvt6BwwQZ" X-Provags-ID: V03:K1:3+quLvP6zMmSl7j3DLMHOgZ+vjmppb8QqbJ8QhZZCr2a0na+dOb wuBwV5DwWkdE48JsPh+JoATxVvHrFFpfWctHKwggmBw8V4H68xSJ1VKVsPQWKBgtgW8V/+0 04j3yG58Q+34ZJBrkAWsGLmD6loUOYLIIdqS9bUZDlraRObnIBRq6KdlxouH9VKVdPQ4sME ZU4p6jcQSftOE6VK/QyVA== X-UI-Out-Filterresults: notjunk:1;V03:K0:0hVW6zZQjn4=:FkfzwIMIpvSbcUtYumqFZp qkcFrcweHBAo/XhhxWxKaJaon75k+TuMy67o1r3MDFYuRH1BR2KvAxeF/b4/wY/sfnjfHabRr gaTYtUePV6EAz2+9Axwgy/Jbc1Vvatm6iS1sJiOnreLFe8sJ1WddmSojDIB7OkF6YKaJu3Mwj B/eNM55TuN2Yi3TmTI2TQM048TKzp8MuU2V5G43IjIt04di1AnVjj0QbGecfdlaWQcOsiSG8V 8DVTegz53yBCwG9oaDqySo3sj1TCj9Kfsdslvs52jnAa7FI2U9isJ/jLM8AswkLAl3hvGbSBR ibxT/YrvYJNlf3vFeV+MR6MJbMKIzNqsoS9HvMQsLKZJUKA8fzB3ezhDMoEz9Z994rzk0L0qD OTGg5IkTKH7xH1V+VsG0qag7/48rLnbbnK35WrjjEzw/vjxpVjxLq+lvqjsmIudxCkAynef1e 6hHCqfxA80mr0i8sFa7n/KVWZPtLQw/RuGxQUlj8nui2j2IpU4O1qp8h/RczuFkMm+np3EjIZ DhsYtM7/n8FB9wCWMcGzHXgpXypMdZf+8UFg3EdldSNkCGn+kbxy2HFbpZbS3rn+rv3ZBHshb 7fmfZws0ymfy5/zYFdMtm3I0hRwoXSyLsp0NklR8wz34eg2uO1yWJaltgtGd31bh4MqzdnQ3n hwVdYfnkBuBCoOFyDiBxeEvSmBtC5PrDpfL4DoBRIK0DkhgSZfS4iKSytoC4+fq4hcZrqJBwz oEZ8E7flXb3O+lVhN4gRw23hSm2+tYxhPsu0ErpAImg55bypRCN1fZ04VcJU0maiEwNq+eRk4 6koSpbkioDnHawYB8rcwDp167WL2aP3axSIVUnJTGTHwjpC2TX8M4JeuKEkayEtda+dyY4e9C DHbhmXCjdPAuTq0pbc+P288/PFP0eDpc9uyYxsthcn2dMORKzbW6lx1+11KWl4B8EIfAq2w/m ISmxxUXcl9SOTRaWt8YFZnKco0u1sxXSd86XyHJv2ANCqzJY7idODjSl6XyDwegGSTczHX6+G EXE5SI3aZ5ywz8rOacPKFWvWbLCTan6SDLTGYFT2wlJ0Xd7BPZp11Dm7CRgNApF6z5u3WpOOA T8OVUe/9/Qs68gn9HlyA15E23aC2pCycCl4NUngxv2CLOVipyunnbOMxY9+Wzce9FJ1eJpyXQ 7f6Ok6VXpWfVNAZp2XQ67PK2C9LBL2WaF8Jor9Oz7jJoGpa321U/S2oJxxg0eFSuSRTwc= X-Spam-Status: No, score=-25.4 required=5.0 tests=DKIM_SIGNED, DKIM_VALID, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_PASS 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: Thu, 19 Mar 2020 12:48:31 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --TaQAnEQqGbMdO1AQpEkcDznQzvt6BwwQZ Content-Type: multipart/mixed; boundary="lQnZ9z0m43WdUdA9usQriNGU7E2pIWeyZ"; protected-headers="v1" From: Kamil Rytarowski To: Simon Marchi , gdb-patches@sourceware.org Message-ID: <3048d145-21f9-161c-f6fd-7214c7b13a48@gmx.com> Subject: Re: [PATCH] Avoid get_ptrace_pid() usage on NetBSD in x86-bsd-nat.c References: <20200318161328.24088-1-n54@gmx.com> <6b3250d6-027d-46c7-2884-569d9a0aaa13@simark.ca> In-Reply-To: <6b3250d6-027d-46c7-2884-569d9a0aaa13@simark.ca> --lQnZ9z0m43WdUdA9usQriNGU7E2pIWeyZ Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 19.03.2020 02:35, Simon Marchi wrote: > On 2020-03-18 12:13 p.m., Kamil Rytarowski wrote: >> Add gdb_ptrace() that wraps the ptrace(2) API and correctly passes >> the pid,lwp pair to the calls on NetBSD; and the result of >> get_ptrace_pid() on other BSD Operating Systems. >> >> gdb/ChangeLog: >> >> * x86-bsd-nat.c (gdb_ptrace): New. >> * (x86bsd_dr_get, x86bsd_dr_set): Use gdb_ptrace. >> --- >> gdb/ChangeLog | 5 +++++ >> gdb/x86-bsd-nat.c | 39 +++++++++++++++++++-------------------- >> 2 files changed, 24 insertions(+), 20 deletions(-) >> >> diff --git a/gdb/ChangeLog b/gdb/ChangeLog >> index 84964dc00ac..1beb835df78 100644 >> --- a/gdb/ChangeLog >> +++ b/gdb/ChangeLog >> @@ -1,3 +1,8 @@ >> +2020-03-18 Kamil Rytarowski >> + >> + * x86-bsd-nat.c (gdb_ptrace): New. >> + * (x86bsd_dr_get, x86bsd_dr_set): Use gdb_ptrace. >> + >> 2020-03-17 Kamil Rytarowski >> >> * regformats/regdef.h: Put reg in gdb namespace. >> diff --git a/gdb/x86-bsd-nat.c b/gdb/x86-bsd-nat.c >> index 640a3c28110..37d0bfda37c 100644 >> --- a/gdb/x86-bsd-nat.c >> +++ b/gdb/x86-bsd-nat.c >> @@ -33,6 +33,19 @@ >> #include "inf-ptrace.h" >> =0C >> >> +static int >> +gdb_ptrace (PTRACE_TYPE_ARG1 request, ptid_t ptid, PTRACE_TYPE_ARG3 a= ddr) >> +{ >> +#ifdef __NetBSD__ >> + /* Support for NetBSD threads: unlike other ptrace implementations = in this >> + file, NetBSD requires that we pass both the pid and lwp. */ >> + return ptrace (request, ptid.pid (), addr, ptid.lwp ()); >> +#else >> + pid_t pid =3D get_ptrace_pid (ptid); >> + return ptrace (request, pid, addr, 0); >> +#endif >> +} >> + >> #ifdef PT_GETXSTATE_INFO >> size_t x86bsd_xsave_len; >> #endif >> @@ -56,14 +69,9 @@ static unsigned long >> x86bsd_dr_get (ptid_t ptid, int regnum) >> { >> struct dbreg dbregs; >> -#ifdef __NetBSD__ >> - int lwp =3D inferior_ptid.lwp (); >> -#else >> - int lwp =3D 0; >> -#endif >> >> - if (ptrace (PT_GETDBREGS, get_ptrace_pid (inferior_ptid), >> - (PTRACE_TYPE_ARG3) &dbregs, lwp) =3D=3D -1) >> + if (gdb_ptrace (PT_GETDBREGS, inferior_ptid, >> + (PTRACE_TYPE_ARG3) &dbregs) =3D=3D -1) >> perror_with_name (_("Couldn't read debug registers")); >=20 > This function accepts a ptid parameter but does not use it. Can you ch= ange > it so it uses the parameter, and not inferior_ptid? All the callers pa= ss > inferior_ptid, so it won't change the behavior. >=20 OK. >> >> return DBREG_DRX ((&dbregs), regnum); >> @@ -73,14 +81,9 @@ static void >> x86bsd_dr_set (int regnum, unsigned long value) >> { >> struct dbreg dbregs; >> -#ifdef __NetBSD__ >> - int lwp =3D inferior_ptid.lwp (); >> -#else >> - int lwp =3D 0; >> -#endif >> >> - if (ptrace (PT_GETDBREGS, get_ptrace_pid (inferior_ptid), >> - (PTRACE_TYPE_ARG3) &dbregs, lwp) =3D=3D -1) >> + if (gdb_ptrace (PT_GETDBREGS, inferior_ptid, >> + (PTRACE_TYPE_ARG3) &dbregs) =3D=3D -1) >> perror_with_name (_("Couldn't get debug registers")); >=20 > For symmetry, can you please change this function to accept a ptid, jus= t like > x86bsd_dr_get, and update the callers to pass inferior_ptid? >=20 This is a good idea.. however it is intrusive now and requires patching code shared with windows, linux, darwin, ... I prefer to leave it for refactoring in future. I don't have environment to test other Operating Systems than NetBSD. > Simon >=20 --lQnZ9z0m43WdUdA9usQriNGU7E2pIWeyZ-- --TaQAnEQqGbMdO1AQpEkcDznQzvt6BwwQZ Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEELaxVpweEzw+lMDwuS7MI6bAudmwFAl5zadIACgkQS7MI6bAu dmwJqxAAmrPO6qn6VbhO+pvPaqqOTpR/hksbUX6o4Qrs+/5+6JxvO2HFnJT64UHq G/gPzz1FcDbRK/dg6bid92naDprKh+MIcrSuxAtHBE05Xy7cdJ84FxapBEDjxu73 jp/vpypuezmezcyL8MpaT2v/awZChLZUNnUC7u+eh5tJHllpOPdQ9PwJ4RiBJQs7 cmrlTdWoGOiZsM5pIVS1ImFMfWnnBXQkzrd7UxrIW7ig+PJ23gki7SrvwEWPqMpA DZSGSXNt0ZW089UYqT02eeGGW5yFNpyf/Nm1qUM0emyxVKH+fe+iKSUk5569u7gk RFP8mQzOIsci9DcfrDSkEfr4WwpbRszNmeC8JUqpeswSfauyaZ06HGW5aEKTlObJ Ph5wW5PeJclb1mtRJS3unM77fcYyGeOQV55IlLOZnubQdCInBL5Nt52ob0FGFUcg QkuUx4Hfb+Pbk9Stifx5yHtyTw5o1hW9JhttZFn+LSFzXCBsspQoUMQoP3MAxPUI YW0OXqeqmYNDcIT88ITO8L3HrfZYSu0AE+N8DkRD3Ox3NgYRLy1yHJETtI7EdLnu F7yPd+TjHPfGRlQ7YfMjr26y93EKDz8BlDYSm6XZjmOZaTQDFX2JC6x8y+7SkSRF +gM/xuDufnIt4Er7O44gIbqjIFlBwUZLdAPxI8GX5eKHSGEzkKY= =hklc -----END PGP SIGNATURE----- --TaQAnEQqGbMdO1AQpEkcDznQzvt6BwwQZ--