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.
This commit is contained in:
Gary Benson 2015-06-10 14:28:43 +01:00
parent 4b8b5e7245
commit 9bc3a9760b
4 changed files with 10 additions and 35 deletions

View File

@ -1,3 +1,11 @@
2015-06-10 Gary Benson <gbenson@redhat.com>
* 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 <gbenson@redhat.com>
* configure.ac (AC_CHECK_FUNCS): Add setns.

View File

@ -42,9 +42,9 @@
#include "nat/linux-osdata.h"
#include "auto-load.h"
#include "cli/cli-utils.h"
#include <signal.h>
#include <ctype.h>
#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);
}
}

View File

@ -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

View File

@ -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. */