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 C3CC0385BF83 for ; Sun, 12 Apr 2020 17:53:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C3CC0385BF83 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=1586714028; bh=CsqcndLT+xQ5YhD7tMPtrVwKuq9TVTALZBXKi8udSUA=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=Uki7wtjlZPYVD82+DBp8mN536zi2w9S3Wp9QkXz/5OVc3dY5nUqvpsKtg33QoJpSp TevC7nndk83Q6enhlF4reV549nmiX2THLhR05WS3m4ekbFa8KN/nyU3NxDEZdeII/u z22nuoupXPNRvTa0CI5z2vHV0W0AUnRH2bO4Sfqs= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.localdomain ([89.79.191.25]) by mail.gmx.com (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MUXpQ-1jo3NE1BPk-00QTHx; Sun, 12 Apr 2020 19:53:48 +0200 From: Kamil Rytarowski To: gdb-patches@sourceware.org Subject: [PATCH] Implement "info proc exe" for NetBSD Date: Sun, 12 Apr 2020 19:53:08 +0200 Message-Id: <20200412175308.13844-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:ymthgsGzos7mScNt4lfGxHrxlPkOtguSfz7Yj3SIaZd3Tr94JMT qN2TB4g8ZODzYnyhwzgfDVIsSAsS1j2W+mwhO+M8nx1+tflzdsRO2xgxguz3bJqeZx2lu9r /xX04bjrxiFYNg6iUwNfhMAuAR8ulU9M8fl4NiIg3Dk8f6boDr4zrAZISuo1sqDnPtApCSY 5QdUrjcXjpILUeW1IzRMg== X-UI-Out-Filterresults: notjunk:1;V03:K0:Op6Myjni3jQ=:UqtYCHjrT9Vx0ZTaK1BVtG oflKUIBhBg4XgZvfDm7N7uH2e1VwWIvWIuuj2b3OuxZG8FRJclOrnepof3jqH6UHeU1DlnCkD 1V+IC0Aq4MGwv+YM9Xic2kYgxjLgIf8/P4kgyDB7a6fn4gqhWaTxlv90v8FTgwSadXyNxzOAJ T8Tb0/o4o02A00Nk+ndzFXtlZM9RZKmcNJ/LvBPi69KWLXWTYvWe8AJO6O0b0r0BX6V1jA72O VLgbHEyT/Oz40xk0UwhGvekr1TYifSVH0i+atPJOHPl0XbhzuQj6eIL459jsC8LV2GTBIa2nM wrqp6oTYYMjmwkPyRRA1dFwu1YIp0YL02epAntKt/vOVRp2n3qZTMLAJ9qpCvzPcRMPYd2dK2 uncH61sj2mfvaqEh/zeVJQVsHqUvctKtCsq+Rzob4XsuOpxzCWm/KaKr0pV1Mj4FowBom6QUH GwE42Dr8upQM0YvDB5hxjbWAGqrLW1fPjkRnzc5xpQT5tT1bG/6q61kqQ7jmOEVvWZnAhER+U j9xDU3cGa9GAgGjGu3Z2ZPJbz50NLjLF+6knHPS97afcZgkIjbjPjaFJTr3+15A3zDGsvdiV9 SvfqDAWULQWqpyJsztjfEztUlk5u1og3rJB+9lzepvDXHwQTUtlWs8Uo27uuq4LDLF8ZNPe4Y +tXkly5BdV5uByEKy6yRSI2PupfBDF9S+4LPCn+qqShUcWVmMGFYKCED+qk3dy9jVBdeVv5TF Nv9EZDRDfrpT+zu1RxjFzzQuKxq35+w03ggTKiALeiypp0B+PBHCSVgrSO6MFuG/6QHVBhR2K da7mOHAFribKcHv0/C3P6jp7RMnzYto5oB2jL17GIacilkFHice84NplzbGFlIqGN6ntw4qP3 a0qwdUkb2Pnbh2gdEWMts8Pj3ntGjJETjKjQCt9gash21ZnnOEzaC4UxPqrPUNCLmSC8wAcjc l5mm0xUCPImELCpm27bCUE60jfCZehoH9Jh2uwn8INTjUmJcMtF6cpsZF1coCWa1c5CNClEbL a+kFsatbbm8frBdyFTA5i9t0CIS8RY2o04xVGzvjjMHORt+aLGUTpZsocloTEXL6wdvP+54cb hjCnMI+YGDKP/C4I1heS2iz4hyZLm+A/fqBom28WTjj4kOOR3ICOGyfMgaBtu6LYIbi1Eo/Bh S7NODpL7nt2vODflsRO4dQjnxsmWIKpgL2JCdyT54Is3RjpeMkDDD5QwC0onWQ8rsODJw= X-Spam-Status: No, score=-28.0 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: Sun, 12 Apr 2020 17:53:51 -0000 Add nbsd_pid_to_cwd() to query the program current directory. gdb/ChangeLog: * nbsd-nat.c (nbsd_pid_to_cwd): Add. (nbsd_nat_target::info_proc): Add do_cwd. =2D-- gdb/ChangeLog | 5 +++++ gdb/nbsd-nat.c | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3bbd5c3129d..9e49cf9cf97 100644 =2D-- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-04-12 Kamil Rytarowski + + * nbsd-nat.c (nbsd_pid_to_cwd): Add. + (nbsd_nat_target::info_proc): Add do_cwd. + 2020-04-12 Kamil Rytarowski * nbsd-nat.c (nbsd_nat_target::info_proc): Add do_exe. diff --git a/gdb/nbsd-nat.c b/gdb/nbsd-nat.c index 05aedf8e3f1..628bf919a98 100644 =2D-- a/gdb/nbsd-nat.c +++ b/gdb/nbsd-nat.c @@ -44,6 +44,21 @@ nbsd_nat_target::pid_to_exec_file (int pid) return buf; } +/* Return the name of a file that can be opened to get the symbols for + the child process identified by PID. */ + +static std::string +nbsd_pid_to_cwd (int pid) +{ + char buf[PATH_MAX]; + size_t buflen; + int mib[4] =3D {CTL_KERN, KERN_PROC_ARGS, pid, KERN_PROC_CWD}; + buflen =3D sizeof (buf); + if (sysctl (mib, ARRAY_SIZE (mib), buf, &buflen, NULL, 0)) + return ""; + return buf; +} + /* Generic thread (LWP) lister within a specified process. The callback parameters is a C++ function that is called for each detected thread. = */ @@ -299,6 +314,7 @@ bool nbsd_nat_target::info_proc (const char *args, enum info_proc_what what) { pid_t pid; + bool do_cwd =3D false; bool do_exe =3D false; bool do_mappings =3D false; @@ -310,6 +326,9 @@ nbsd_nat_target::info_proc (const char *args, enum inf= o_proc_what what) case IP_EXE: do_exe =3D true; break; + case IP_CWD: + do_cwd =3D true; + break; default: error (_("Not supported on this target.")); } @@ -328,6 +347,14 @@ nbsd_nat_target::info_proc (const char *args, enum in= fo_proc_what what) printf_filtered (_("process %d\n"), pid); + if (do_cwd) + { + std::string cwd =3D nbsd_pid_to_cwd (pid); + if (cwd !=3D "") + printf_filtered ("cwd =3D '%s'\n", cwd.c_str ()); + else + warning (_("unable to fetch current working directory")); + } if (do_exe) { const char *exe =3D pid_to_exec_file (pid); =2D- 2.25.0