From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2023) id 769583861C58; Sat, 14 Mar 2020 13:23:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 769583861C58 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1584192185; bh=beqSv7dA1igpZwsvJkbjGYSD+8m+gvQtZR2p4XclDt8=; h=From:To:Subject:Date:From; b=xoMfOfFj4wNIIZ2IvzdRMF6yezGjjAv93p8kZrcHbHnVzlSqWHoHWQzR6r5y8OzfN MO5gm1YFLusSF1S2S+PEm3mL4qbf5CVlbZf15+Y4brK3dXClCMqqAVYmSq22oiGol4 0XwmyGPlW40qqhHVkp1BCUBik87y7IzVc6YN6+F0= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Kamil Rytarowski To: gdb-cvs@sourceware.org Subject: [binutils-gdb] Add support for NetBSD threads in x86-bsd-nat.c X-Act-Checkin: binutils-gdb X-Git-Author: Kamil Rytarowski X-Git-Refname: refs/heads/master X-Git-Oldrev: 6227b330d563add042066259e5f933c89a85b3b5 X-Git-Newrev: 013f99f035c49b000ca058db80ad15e00aa330dc Message-Id: <20200314132305.769583861C58@sourceware.org> Date: Sat, 14 Mar 2020 13:23:05 +0000 (GMT) X-BeenThere: gdb-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Mar 2020 13:23:05 -0000 https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=013f99f035c49b000ca058db80ad15e00aa330dc commit 013f99f035c49b000ca058db80ad15e00aa330dc Author: Kamil Rytarowski Date: Sat Mar 14 14:17:16 2020 +0100 Add support for NetBSD threads in x86-bsd-nat.c NetBSD ptrace(2) PT_GETDBREGS/PT_SETDBREGS accepts thread id (LWP) as the 4th argument for threads. gdb/ChangeLog: * x86-bsd-nat.c (x86bsd_dr_get): New variable lwp and pass it to the ptrace call. * x86-bsd-nat.c (x86bsd_dr_set): Likewise. Diff: --- gdb/ChangeLog | 6 ++++++ gdb/x86-bsd-nat.c | 20 +++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 34212357c84..49e033533e2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2020-03-14 Kamil Rytarowski + + * x86-bsd-nat.c (x86bsd_dr_get): New variable lwp and pass + it to the ptrace call. + * x86-bsd-nat.c (x86bsd_dr_set): Likewise. + 2020-03-14 Kamil Rytarowski * vax-bsd-nat.c (vaxbsd_supply_gregset): New variable lwp and pass diff --git a/gdb/x86-bsd-nat.c b/gdb/x86-bsd-nat.c index 2bb8f8a2347..640a3c28110 100644 --- a/gdb/x86-bsd-nat.c +++ b/gdb/x86-bsd-nat.c @@ -56,9 +56,14 @@ static unsigned long x86bsd_dr_get (ptid_t ptid, int regnum) { struct dbreg dbregs; +#ifdef __NetBSD__ + int lwp = inferior_ptid.lwp (); +#else + int lwp = 0; +#endif if (ptrace (PT_GETDBREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &dbregs, 0) == -1) + (PTRACE_TYPE_ARG3) &dbregs, lwp) == -1) perror_with_name (_("Couldn't read debug registers")); return DBREG_DRX ((&dbregs), regnum); @@ -68,9 +73,14 @@ static void x86bsd_dr_set (int regnum, unsigned long value) { struct dbreg dbregs; +#ifdef __NetBSD__ + int lwp = inferior_ptid.lwp (); +#else + int lwp = 0; +#endif if (ptrace (PT_GETDBREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &dbregs, 0) == -1) + (PTRACE_TYPE_ARG3) &dbregs, lwp) == -1) perror_with_name (_("Couldn't get debug registers")); /* For some mysterious reason, some of the reserved bits in the @@ -82,8 +92,12 @@ x86bsd_dr_set (int regnum, unsigned long value) for (thread_info *thread : current_inferior ()->non_exited_threads ()) { +#ifdef __NetBSD__ + lwp = thread->ptid.lwp (); +#endif + if (ptrace (PT_SETDBREGS, get_ptrace_pid (thread->ptid), - (PTRACE_TYPE_ARG3) &dbregs, 0) == -1) + (PTRACE_TYPE_ARG3) &dbregs, lwp) == -1) perror_with_name (_("Couldn't write debug registers")); } }