From 2e7941949d5bab63696c842cb5fe3d96edba29fb Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Mon, 5 Mar 2012 21:07:46 +0000 Subject: [PATCH] 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. --- gdb/ChangeLog | 13 ++++++++ gdb/common/linux-osdata.c | 2 ++ gdb/linux-nat.c | 67 +-------------------------------------- gdb/linux-nat.h | 3 -- gdb/linux-thread-db.c | 3 +- 5 files changed, 18 insertions(+), 70 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 65ba222512d..fe9f692806c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,16 @@ +2012-03-05 Jan Kratochvil + + 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 * value.c (value_primitive_field): Don't fetch contents for diff --git a/gdb/common/linux-osdata.c b/gdb/common/linux-osdata.c index 4f97a22ea51..ffb72b35d95 100644 --- a/gdb/common/linux-osdata.c +++ b/gdb/common/linux-osdata.c @@ -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) { diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 553dfdbd614..e3a5e9d973f 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -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 diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h index 621737035db..c9878d97c15 100644 --- a/gdb/linux-nat.h +++ b/gdb/linux-nat.h @@ -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)); diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c index ea34bf4fd7b..4d09c6e3ba2 100644 --- a/gdb/linux-thread-db.c +++ b/gdb/linux-thread-db.c @@ -40,6 +40,7 @@ #include "observer.h" #include "linux-nat.h" #include "linux-procfs.h" +#include "linux-osdata.h" #include @@ -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; } -- 2.30.2