* linux-nat.h (linux_proc_get_tgid): Declare.

* linux-nat.c (linux_proc_get_tgid): New.
	* linux-thread-db.c (struct thread_db_info): New field
	`need_stale_parent_threads_check'.
	(add_thread_db_info): Set it.
	(find_new_threads_callback): Ignore stale fork parent threads.
	(thread_db_resume): New.
	(init_thread_db_ops): Install thread_db_resume.
This commit is contained in:
Pedro Alves
2009-05-18 17:11:25 +00:00
parent d90e17a74d
commit 4d062f1ad5
4 changed files with 90 additions and 4 deletions

View File

@ -1129,6 +1129,34 @@ exit_lwp (struct lwp_info *lp)
delete_lwp (lp->ptid);
}
/* Return an lwp's tgid, found in `/proc/PID/status'. */
int
linux_proc_get_tgid (int lwpid)
{
FILE *status_file;
char buf[100];
int tgid = -1;
snprintf (buf, sizeof (buf), "/proc/%d/status", (int) lwpid);
status_file = fopen (buf, "r");
if (status_file != NULL)
{
while (fgets (buf, sizeof (buf), status_file))
{
if (strncmp (buf, "Tgid:", 5) == 0)
{
tgid = strtoul (buf + strlen ("Tgid:"), NULL, 10);
break;
}
}
fclose (status_file);
}
return tgid;
}
/* Detect `T (stopped)' in `/proc/PID/status'.
Other states including `T (tracing stop)' are reported as false. */