mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
gdb/
Code cleanup. * common/linux-osdata.c (linux_common_core_of_thread): New function comment. * linux-nat.c (linux_nat_wait_1): Replace linux_nat_core_of_thread_1 call by linux_common_core_of_thread. (linux_nat_core_of_thread_1): Remove. * linux-nat.h (linux_nat_core_of_thread_1): Remove declaration. * linux-thread-db.c: Include linux-osdata.h. (update_thread_core): Replace linux_nat_core_of_thread_1 call by linux_common_core_of_thread.
This commit is contained in:
parent
9f9f1f31e7
commit
2e7941949d
@ -1,3 +1,16 @@
|
||||
2012-03-05 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Code cleanup.
|
||||
* common/linux-osdata.c (linux_common_core_of_thread): New function
|
||||
comment.
|
||||
* linux-nat.c (linux_nat_wait_1): Replace linux_nat_core_of_thread_1
|
||||
call by linux_common_core_of_thread.
|
||||
(linux_nat_core_of_thread_1): Remove.
|
||||
* linux-nat.h (linux_nat_core_of_thread_1): Remove declaration.
|
||||
* linux-thread-db.c: Include linux-osdata.h.
|
||||
(update_thread_core): Replace linux_nat_core_of_thread_1 call by
|
||||
linux_common_core_of_thread.
|
||||
|
||||
2012-03-05 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* value.c (value_primitive_field): Don't fetch contents for
|
||||
|
@ -45,6 +45,8 @@
|
||||
#include "gdb_assert.h"
|
||||
#include "gdb_dirent.h"
|
||||
|
||||
/* Compute and return the processor core of a given thread. */
|
||||
|
||||
int
|
||||
linux_common_core_of_thread (ptid_t ptid)
|
||||
{
|
||||
|
@ -4000,7 +4000,7 @@ retry:
|
||||
|| ourstatus->kind == TARGET_WAITKIND_SIGNALLED)
|
||||
lp->core = -1;
|
||||
else
|
||||
lp->core = linux_nat_core_of_thread_1 (lp->ptid);
|
||||
lp->core = linux_common_core_of_thread (lp->ptid);
|
||||
|
||||
return lp->ptid;
|
||||
}
|
||||
@ -5189,71 +5189,6 @@ linux_nat_thread_address_space (struct target_ops *t, ptid_t ptid)
|
||||
return inf->aspace;
|
||||
}
|
||||
|
||||
int
|
||||
linux_nat_core_of_thread_1 (ptid_t ptid)
|
||||
{
|
||||
struct cleanup *back_to;
|
||||
char *filename;
|
||||
FILE *f;
|
||||
char *content = NULL;
|
||||
char *p;
|
||||
char *ts = 0;
|
||||
int content_read = 0;
|
||||
int i;
|
||||
int core;
|
||||
|
||||
filename = xstrprintf ("/proc/%d/task/%ld/stat",
|
||||
GET_PID (ptid), GET_LWP (ptid));
|
||||
back_to = make_cleanup (xfree, filename);
|
||||
|
||||
f = fopen (filename, "r");
|
||||
if (!f)
|
||||
{
|
||||
do_cleanups (back_to);
|
||||
return -1;
|
||||
}
|
||||
|
||||
make_cleanup_fclose (f);
|
||||
|
||||
for (;;)
|
||||
{
|
||||
int n;
|
||||
|
||||
content = xrealloc (content, content_read + 1024);
|
||||
n = fread (content + content_read, 1, 1024, f);
|
||||
content_read += n;
|
||||
if (n < 1024)
|
||||
{
|
||||
content[content_read] = '\0';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
make_cleanup (xfree, content);
|
||||
|
||||
p = strchr (content, '(');
|
||||
|
||||
/* Skip ")". */
|
||||
if (p != NULL)
|
||||
p = strchr (p, ')');
|
||||
if (p != NULL)
|
||||
p++;
|
||||
|
||||
/* If the first field after program name has index 0, then core number is
|
||||
the field with index 36. There's no constant for that anywhere. */
|
||||
if (p != NULL)
|
||||
p = strtok_r (p, " ", &ts);
|
||||
for (i = 0; p != NULL && i != 36; ++i)
|
||||
p = strtok_r (NULL, " ", &ts);
|
||||
|
||||
if (p == NULL || sscanf (p, "%d", &core) == 0)
|
||||
core = -1;
|
||||
|
||||
do_cleanups (back_to);
|
||||
|
||||
return core;
|
||||
}
|
||||
|
||||
/* Return the cached value of the processor core for thread PTID. */
|
||||
|
||||
static int
|
||||
|
@ -200,9 +200,6 @@ void linux_nat_switch_fork (ptid_t new_ptid);
|
||||
/* Return the saved siginfo associated with PTID. */
|
||||
struct siginfo *linux_nat_get_siginfo (ptid_t ptid);
|
||||
|
||||
/* Compute and return the processor core of a given thread. */
|
||||
int linux_nat_core_of_thread_1 (ptid_t ptid);
|
||||
|
||||
/* Set alternative SIGTRAP-like events recognizer. */
|
||||
void linux_nat_set_status_is_event (struct target_ops *t,
|
||||
int (*status_is_event) (int status));
|
||||
|
@ -40,6 +40,7 @@
|
||||
#include "observer.h"
|
||||
#include "linux-nat.h"
|
||||
#include "linux-procfs.h"
|
||||
#include "linux-osdata.h"
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
@ -1603,7 +1604,7 @@ thread_db_find_new_threads_1 (ptid_t ptid)
|
||||
static int
|
||||
update_thread_core (struct lwp_info *info, void *closure)
|
||||
{
|
||||
info->core = linux_nat_core_of_thread_1 (info->ptid);
|
||||
info->core = linux_common_core_of_thread (info->ptid);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user