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 2598D385E00B for ; Wed, 25 Mar 2020 18:36:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 2598D385E00B 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=1585161405; bh=jp9lzbzfN7NnJsTV7D+7zM8LbaokL01hWn9iwv9XJBc=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=LhaYvbW8x5GWL8Yk6tyB+73u1TELHlq3cKfjHA7k7SkdpFbwTxf2onAZ6FXhIebna uTdB7XsYf7Wo3YqLwmSHoWJepf6hpRR/eFrqTjAlhw2RZUdE7H4n9Z6V+fGFztai2H 96FwT4P0IrsaNESVMYsVMqOFqDHyyUhu1YoMW/5I= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.localdomain ([89.79.191.25]) by mail.gmx.com (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1N1Obh-1jMrEV4Bad-012qNQ; Wed, 25 Mar 2020 19:36:45 +0100 From: Kamil Rytarowski To: gdb-patches@sourceware.org Subject: [PATCH] Implement nbsd_nat_target::thread_name Date: Wed, 25 Mar 2020 19:35:41 +0100 Message-Id: <20200325183541.6662-1-n54@gmx.com> X-Mailer: git-send-email 2.25.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:/r3xC36Y7ifjmvC3+iiolXlVpkhKfGpcDfzauPR4OZ1pjXaOTVB YRHghc80qKCDvGBcemwx2cAdpMGK6gMW5aVKdzSurhx24pWobLDs0RBg/7T6VHDSFWYr9wd qDhu96fYpmk2DCtFCjnF636qgyp+Wa+iKDh4ztz6wQGhKamOn8j/s5hGh5mwNuvFoqwT8XB t2h7b3mCSHlC+SQRAWrFg== X-UI-Out-Filterresults: notjunk:1;V03:K0:U749aiWHioM=:7OtNcfjbVBxa+z2+a38J9h 4bV9uIaxbS3HJkRZl9CpO3M0IU1IIKPuJLWjnywP0TKbi12YaHLdzZ7UQJbEBJBkcYROdl7qX 1gOcBNmcR8GC4+nv4QXtSalvgY0oR4PeyScOYwg44sk9o+uZ/QH/b8cW2fttTxRfgS9AbUZt/ 9UkNNmf7IkmwSdXDlc8jv13s4JXfwu373SqrA//KN745Xr7pTtqoqIJj2HFJ2ElhxoauuUvyT CQisUsDCQ7JFnnBjphO/Mk2SaULVItBoRLrpnkZThvCnxrX8Q1jSn3KqcheO2kBNZFWt8FYjP e7Wv13/K280gRWOcsZV7LFkiwy+cIw4jE4xRbLGQVhoAhuNIfDnNnhGs9PmiyhZO0uMERCpnL Yswxku/1/ZU7cH6Lp5tpi29t+c/ou9UwUpDPe/z4+sn0a+WWVhwAuqLuI0FKOcfywG5luRe07 jJGN66Oy1ihxYOt04quHg8N9dC3yMEG+WUhowjtFpQl0bkpgoE1cu6ajKlQJf4Rgp0CXuSv/0 qEzh9Sdv/mXSqZ3jgocqZacQmecmIQpJGRuxdGul/GEpefr8+SlKx9TRN+JM2VGWq9WF2RjIl 0kMMZdmH4V1lRe9zMtP9yu876So7qXuJKUOq/z40Zch+5kOD4VVku/d7HDebZcWb4Kq/jNjwe yJoepYMaAskBsPiHymoo6sOHZ522ox+1x6CEW+i/Q+blC71X411AR1JTZ/aVxKpbQq2ThFftD fy9vdR5qfC8bMo93uFcOtC7lznuib4QuiXVcuBTh/YfZ3qvtJ6eYAm5+PqN5FSzHm1CxNYQ95 /RczCAioFWMigr+jV+UIODeyBxwGqtXW9MbgppaUbCfFe8hNr5r0jVgj4W5GHSpmr4ZBE5Gpi HajVq4q/qUUOOtRNeuQonw0rHJW5qDUs8PSkHEfGx+a2KINXlal4GOzhd0jYo8Wm8A+DP/cIz LRzamPj2wg44HdigTvpuwIGDXDXTy4KuxdPo2STeVhsFUtPHWZ7GiSsG+mM5fSuNX3+rc3fZ5 Ubw8HkKT4yy2FJ4I5VGmiYQXDNTndnZt7OZlVegnmETJSLV1JuxVnp00wCXppCLhutsmJp9ID 3ohnmAyPbxKTyfIXx1ttmxvSbX0MTBF3chrDvVzAEDAJGpo49qteM62pfawOq7Qbzfjws8tft jnKWhQd6hUyELirkelGDB4ByMIS/TQemP3Bz0HTwM44LFNjUDN6aur9hcuhtiav3OypAk= X-Spam-Status: No, score=-32.9 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 18:36:49 -0000 Return the name assigned to a thread by an application. Return the string in a static buffer. gdb/ChangeLog: * nbsd-nat.h (nbsd_nat_target::thread_name): Add. (struct thread_info): Add forward declaration. * nbsd-nat.c: Include "gdbthread.h". (nbsd_nat_target::thread_name): Add. =2D-- gdb/ChangeLog | 7 +++++++ gdb/nbsd-nat.c | 39 +++++++++++++++++++++++++++++++++++++++ gdb/nbsd-nat.h | 4 ++++ 3 files changed, 50 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5400a4e3484..4f6de3767d7 100644 =2D-- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -53,6 +53,13 @@ * nat/gdb_ptrace.h: Don't declare ptrace if HAVE_DECL_PTRACE is not defined. +2020-03-20 Kamil Rytarowski + + * nbsd-nat.h (nbsd_nat_target::thread_name): Add. + (struct thread_info): Add forward declaration. + * nbsd-nat.c: Include "gdbthread.h". + (nbsd_nat_target::thread_name): Add. + 2020-03-20 Kamil Rytarowski * amd64-bsd-nat.c (gdb_ptrace): Change return type from `int' to diff --git a/gdb/nbsd-nat.c b/gdb/nbsd-nat.c index 326bbe3aec3..59c311e840c 100644 =2D-- a/gdb/nbsd-nat.c +++ b/gdb/nbsd-nat.c @@ -20,6 +20,7 @@ #include "defs.h" #include "nbsd-nat.h" +#include "gdbthread.h" #include #include @@ -39,3 +40,41 @@ nbsd_nat_target::pid_to_exec_file (int pid) return NULL; return buf; } + +/* Return the name assigned to a thread by an application. Returns + the string in a static buffer. */ + +const char * +nbsd_nat_target::thread_name (struct thread_info *thr) +{ + ptid_t ptid =3D thr->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")); + + static char buf[KI_LNAMELEN] =3D {}; + for (size_t i =3D 0; i < size / sizeof (struct kinfo_lwp); i++) + { + if (kl.get ()[i].l_lid =3D=3D lwp) + { + xsnprintf (buf, sizeof buf, "%s", kl.get ()[i].l_name); + break; + } + } + + return buf; +} diff --git a/gdb/nbsd-nat.h b/gdb/nbsd-nat.h index a752fbe572d..3909bdf67a2 100644 =2D-- a/gdb/nbsd-nat.h +++ b/gdb/nbsd-nat.h @@ -22,11 +22,15 @@ #include "inf-ptrace.h" +struct thread_info; + /* A prototype NetBSD target. */ struct nbsd_nat_target : public inf_ptrace_target { char *pid_to_exec_file (int pid) override; + + const char *thread_name (struct thread_info *thr) override; }; #endif /* nbsd-nat.h */ =2D- 2.25.0