From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by sourceware.org (Postfix) with ESMTPS id 0CA67389F4EE for ; Mon, 16 Mar 2020 17:15:08 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584378907; bh=x8PGOmJpR355NHZ0mut3Xfp1VfRhwkdd0ifXiPsG1L8=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=RN6y6JtrmYkheZrFth0nAU9SzR/QFdh/MKZbXubLstgqu1gfGP2w0TY9X361br1gj Ykk70gAtDlRa0o4Nsq/uEruU3YKLDn1cJg+S4piy/zYVroX36BSZsl8EzxWjgCEzTk 7ucMTeqjXbwcCCkO9Lrb8vgzvyqBkM5gNCyP2vLs= 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 1Mz9Z5-1jYz0q1CVf-00wAFx; Mon, 16 Mar 2020 18:15:07 +0100 From: Kamil Rytarowski To: gdb-patches@sourceware.org Subject: [PATCH] Rewrite nbsd_nat_target::pid_to_exec_file to sysctl(3) Date: Mon, 16 Mar 2020 18:14:13 +0100 Message-Id: <20200316171413.17990-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:vsSz2IH5pJZLA9H4BVz9GSI2nAyfh7a5RESWQ6eQjgwjdv1SAHD f9D3QYFz1NQ+LppK6QsaVrnscyt5UIlb+KZbY/PURi9dmOvCNQrNVTMXEcYV+gHb8/O0jw+ qilMO6wqPJhgVwniy99g8RK1FA5JNPYcs8Bsd2oqMxTbkuCPvMsb/ua+6tVBMbPgEN/segV vjGppZOHjsAL0hKLZvjsQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:IFfS8hvOZbY=:iFg9G87PLQfzIuiIADSjnO 5NXXT1KSRykyEdxRHVlMrND8ndd24sLPaw2RAySsT0vQyZGNK6zuk1/pliopr8jx6kFWLT3h3 qdTB9WIJfCWvWtk9Q3vCXUS58X7bYX5wYeOWkcN+acfzTczRM4T5V3QshIvPd92GXFjxafA/N eqj+f6ud9mWx5fLnqZuCPFh8qFIB7jxmp04EzCnnMemVK5dPTr5qftXdU/1hOyOJvlyd9Jsko coWxTndaru+kzyipaK41J5wkKhEKcWynhmJVrB1Heib9wt13MrPz6ziUQ1Z9aeNsjx/8nddhk mV/EM9S3YdIuNzRZb/qch7apZq0syDAQ56C+npYcCQlDeDEZHsMMcOsUWALzjbxfhK9OHO3Pa M01w3QDc/jgyq5EPMmX25xaHDhtQuHnMeQ0b9BrmD93Ja7ticSJYqFj08BoPdZ3N/PqHjSlDp PJxveKfy+yA8UePX6x4hLz4/NV1Pwv+gK9xG+PZdggvBFhFXTHy7zSBNtLVr6GXk6fFL8iTBc NZvV2OIcfFgABYXm5eDOKErNkA1fNMrNDJPBUF1CAE7Nz2jYoZ+VHf4u20YLYxxDIBn7uhKDy PJsHsSay0WslwaqmxkoK78mljzlBLAowKHoH83SQiFzDNy4B8CHg34UBMQSBMzc+/Py1Z7VxO jgFR+C1cJZsLXm9ewcYI1q9mbZtKh5zAdOs82R1l9+zNUrgCvi71B1eTRv3OXBEk/02JrmQlH /6A/fmHvXe/v0SppDgxhoeQfR7qr5X4QczqaMkHdj3jfjIoinZ6jTxi7jKyteFEqDSySUhOz0 M7r+tMYPfdASu9A09/6Fpo3xn8dV+vpxDGsiopWsClU3n9J+WsHaYGMFs0m5BwdLe2fG+cYTa sfIwrQmvnrEx40SeK1DgyoH2Od5hVzIqpP+ptI5QeC30Sh4ulikux/Ub3sXfZMJT1Vj5nd23/ p0mGVCthcjs1OBXiJ14rg6xMbZLcXHvM2jk/aa0I6lOBK3MxXGIZgRmosIx7sC+8c8XPvSRm7 kRWwAE/S0Si0fpjFjB6nJ+TFoS9JLM2JPCWk26f4SNYbrJI/mwZW6Vkg98QoZ48DMMm+dw4MD lE2rsuMgEE8zsTEwHxDuFQxr5cRna+HUX4TYDKq0mBPkMMNrG+GuPwyMxGVvFFEc+rAe1waYq vpTkIv07s08lERImwIai/JmEHCUiH6Td/HrQM9V5w1yTS9fpPZjcgT7xY5Mz+Es72Qn3g= 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: Mon, 16 Mar 2020 17:15:10 -0000 procfs on NetBSD is optional and not recommended. * nbsd-nat.c: Include , and . * nbsd-nat.c (nbsd_nat_target::pid_to_exec_file): Rewrite. =2D-- gdb/ChangeLog | 6 ++++++ gdb/nbsd-nat.c | 22 ++++++++++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a0d97584189..358d49755bf 100644 =2D-- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2020-03-14 Kamil Rytarowski + + * nbsd-nat.c: Include , and + . + * nbsd-nat.c (nbsd_nat_target::pid_to_exec_file): Rewrite. + 2020-03-14 Tom Tromey * c-typeprint.c (cp_type_print_method_args): Print "__restrict__" diff --git a/gdb/nbsd-nat.c b/gdb/nbsd-nat.c index e7f91bebb0d..5e881883a1f 100644 =2D-- a/gdb/nbsd-nat.c +++ b/gdb/nbsd-nat.c @@ -21,23 +21,21 @@ #include "nbsd-nat.h" +#include +#include +#include + /* Return the name of a file that can be opened to get the symbols for the child process identified by PID. */ char * nbsd_nat_target::pid_to_exec_file (int pid) { - ssize_t len; static char buf[PATH_MAX]; - char name[PATH_MAX]; - - xsnprintf (name, PATH_MAX, "/proc/%d/exe", pid); - len =3D readlink (name, buf, PATH_MAX - 1); - if (len !=3D -1) - { - buf[len] =3D '\0'; - return buf; - } - - return NULL; + size_t buflen; + int mib[4] =3D {CTL_KERN, KERN_PROC_ARGS, pid, KERN_PROC_PATHNAME}; + buflen =3D sizeof(buf); + if (sysctl (mib, ARRAY_SIZE (mib), buf, &buflen, NULL, 0)) + return NULL; + return buf; } =2D- 2.25.0