From 9bc3a9760b22a6187fdce6abc3df8f0c1d483a21 Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Wed, 10 Jun 2015 14:28:43 +0100 Subject: [PATCH] Remove linux_proc_pid_get_ns This commit removes linux_proc_pid_get_ns, and updates its only caller to use linux_ns_same instead. gdb/ChangeLog: * linux-thread-db.c (nat/linux-namespaces.h): New include. (check_pid_namespace_match): Use linux_ns_same rather than linux_proc_pid_get_ns to spot PID namespace mismatches. * nat/linux-procfs.h (linux_proc_pid_get_ns): Remove. * nat/linux-procfs.c (linux_proc_pid_get_ns): Likewise. --- gdb/ChangeLog | 8 ++++++++ gdb/linux-thread-db.c | 12 ++---------- gdb/nat/linux-procfs.c | 19 ------------------- gdb/nat/linux-procfs.h | 6 ------ 4 files changed, 10 insertions(+), 35 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 42a5182f8f..d85e4e7c11 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2015-06-10 Gary Benson + + * linux-thread-db.c (nat/linux-namespaces.h): New include. + (check_pid_namespace_match): Use linux_ns_same rather than + linux_proc_pid_get_ns to spot PID namespace mismatches. + * nat/linux-procfs.h (linux_proc_pid_get_ns): Remove. + * nat/linux-procfs.c (linux_proc_pid_get_ns): Likewise. + 2015-06-10 Gary Benson * configure.ac (AC_CHECK_FUNCS): Add setns. diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c index d6387d5d87..6177f3924c 100644 --- a/gdb/linux-thread-db.c +++ b/gdb/linux-thread-db.c @@ -42,9 +42,9 @@ #include "nat/linux-osdata.h" #include "auto-load.h" #include "cli/cli-utils.h" - #include #include +#include "nat/linux-namespaces.h" /* GNU/Linux libthread_db support. @@ -1200,20 +1200,12 @@ check_pid_namespace_match (void) child's thread list, we'll mistakenly think it has no threads since the thread PID fields won't match the PID we give to libthread_db. */ - char *our_pid_ns = linux_proc_pid_get_ns (getpid (), "pid"); - char *inferior_pid_ns = linux_proc_pid_get_ns ( - ptid_get_pid (inferior_ptid), "pid"); - - if (our_pid_ns != NULL && inferior_pid_ns != NULL - && strcmp (our_pid_ns, inferior_pid_ns) != 0) + if (!linux_ns_same (ptid_get_pid (inferior_ptid), LINUX_NS_PID)) { warning (_ ("Target and debugger are in different PID " "namespaces; thread lists and other data are " "likely unreliable")); } - - xfree (our_pid_ns); - xfree (inferior_pid_ns); } } diff --git a/gdb/nat/linux-procfs.c b/gdb/nat/linux-procfs.c index 44364c5fbb..24bcb019a3 100644 --- a/gdb/nat/linux-procfs.c +++ b/gdb/nat/linux-procfs.c @@ -185,25 +185,6 @@ linux_proc_pid_is_zombie (pid_t pid) return linux_proc_pid_is_zombie_maybe_warn (pid, 1); } -/* See linux-procfs.h declaration. */ - -char * -linux_proc_pid_get_ns (pid_t pid, const char *ns) -{ - char buf[100]; - char nsval[64]; - int ret; - xsnprintf (buf, sizeof (buf), "/proc/%d/ns/%s", (int) pid, ns); - ret = readlink (buf, nsval, sizeof (nsval)); - if (0 < ret && ret < sizeof (nsval)) - { - nsval[ret] = '\0'; - return xstrdup (nsval); - } - - return NULL; -} - /* See linux-procfs.h. */ void diff --git a/gdb/nat/linux-procfs.h b/gdb/nat/linux-procfs.h index fdbf383813..f9cad39562 100644 --- a/gdb/nat/linux-procfs.h +++ b/gdb/nat/linux-procfs.h @@ -54,12 +54,6 @@ extern int linux_proc_pid_is_zombie_nowarn (pid_t pid); extern int linux_proc_pid_is_gone (pid_t pid); -/* Return an opaque string identifying PID's NS namespace or NULL if - * the information is unavailable. The returned string must be - * released with xfree. */ - -extern char *linux_proc_pid_get_ns (pid_t pid, const char *ns); - /* Callback function for linux_proc_attach_tgid_threads. If the PTID thread is not yet known, try to attach to it and return true, otherwise return false. */ -- 2.34.1