Use gdb_dir_up in linux_proc_attach_tgid_threads
This changes linux_proc_attach_tgid_threads to use gdb_dir_up. This makes it robust against exceptions. Approved-By: Simon Marchi <simon.marchi@efficios.com>
This commit is contained in:
parent
31141b5520
commit
596cd22cb1
@ -275,7 +275,6 @@ void
|
||||
linux_proc_attach_tgid_threads (pid_t pid,
|
||||
linux_proc_attach_lwp_func attach_lwp)
|
||||
{
|
||||
DIR *dir;
|
||||
char pathname[128];
|
||||
int new_threads_found;
|
||||
int iterations;
|
||||
@ -284,7 +283,7 @@ linux_proc_attach_tgid_threads (pid_t pid,
|
||||
return;
|
||||
|
||||
xsnprintf (pathname, sizeof (pathname), "/proc/%ld/task", (long) pid);
|
||||
dir = opendir (pathname);
|
||||
gdb_dir_up dir (opendir (pathname));
|
||||
if (dir == NULL)
|
||||
{
|
||||
warning (_("Could not open %s."), pathname);
|
||||
@ -300,7 +299,7 @@ linux_proc_attach_tgid_threads (pid_t pid,
|
||||
struct dirent *dp;
|
||||
|
||||
new_threads_found = 0;
|
||||
while ((dp = readdir (dir)) != NULL)
|
||||
while ((dp = readdir (dir.get ())) != NULL)
|
||||
{
|
||||
unsigned long lwp;
|
||||
|
||||
@ -321,10 +320,8 @@ linux_proc_attach_tgid_threads (pid_t pid,
|
||||
iterations = -1;
|
||||
}
|
||||
|
||||
rewinddir (dir);
|
||||
rewinddir (dir.get ());
|
||||
}
|
||||
|
||||
closedir (dir);
|
||||
}
|
||||
|
||||
/* See linux-procfs.h. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user