From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23455 invoked by alias); 16 Mar 2012 14:44:14 -0000 Received: (qmail 23447 invoked by uid 22791); 16 Mar 2012 14:44:12 -0000 X-SWARE-Spam-Status: No, hits=-1.1 required=5.0 tests=AWL,BAYES_00,FROM_12LTRDOM,SUBJ_OBFU_PUNCT_FEW,SUBJ_OBFU_PUNCT_MANY X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 16 Mar 2012 14:44:00 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1S8YNr-0006UO-R1 from Yao_Qi@mentor.com for gdb-patches@sourceware.org; Fri, 16 Mar 2012 07:43:59 -0700 Received: from SVR-ORW-FEM-05.mgc.mentorg.com ([147.34.97.43]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Fri, 16 Mar 2012 07:43:57 -0700 Received: from localhost.localdomain (147.34.91.1) by svr-orw-fem-05.mgc.mentorg.com (147.34.97.43) with Microsoft SMTP Server id 14.1.289.1; Fri, 16 Mar 2012 07:43:58 -0700 From: Yao Qi To: Subject: [PATCH 1/5] Define target_core_of_thread in gdbserver. Date: Fri, 16 Mar 2012 14:44:00 -0000 Message-ID: <1331908966-5527-2-git-send-email-yao@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-03/txt/msg00608.txt.bz2 In ITSET, it needs to know the core number for a given thread id. It is done by target_core_of_thread in GDB. In GDBserver, we do have code for this purpose, but both side is not unified. In this patch, a new macro `target_core_of_thread' is defined, so code in gdb/common/ can use target_core_of_thread without #if/#else/#endif wrappings. gdb/gdbserver: 2012-03-16 Yao Qi * remote-utils.c (prepare_resume_reply): Replace with macro target_core_of_thread. * server.c (handle_qxfer_threads_proper): Likewise. * target.h (traget_core_of_thread): New macro. --- gdb/gdbserver/remote-utils.c | 4 ++-- gdb/gdbserver/server.c | 5 +---- gdb/gdbserver/target.h | 4 ++++ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/gdb/gdbserver/remote-utils.c b/gdb/gdbserver/remote-utils.c index 4e35bb7..995e3b1 100644 --- a/gdb/gdbserver/remote-utils.c +++ b/gdb/gdbserver/remote-utils.c @@ -1390,8 +1390,8 @@ prepare_resume_reply (char *buf, ptid_t ptid, strcat (buf, ";"); buf += strlen (buf); - if (the_target->core_of_thread) - core = (*the_target->core_of_thread) (ptid); + core = target_core_of_thread (ptid); + if (core != -1) { sprintf (buf, "core:"); diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c index 0de3f52..c330d17 100644 --- a/gdb/gdbserver/server.c +++ b/gdb/gdbserver/server.c @@ -1120,14 +1120,11 @@ handle_qxfer_threads_proper (struct buffer *buffer) { ptid_t ptid = thread_to_gdb_id ((struct thread_info *)thread); char ptid_s[100]; - int core = -1; + int core = target_core_of_thread (ptid); char core_s[21]; write_ptid (ptid_s, ptid); - if (the_target->core_of_thread) - core = (*the_target->core_of_thread) (ptid); - if (core != -1) { sprintf (core_s, "%d", core); diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h index 256cfd9..dcf0230 100644 --- a/gdb/gdbserver/target.h +++ b/gdb/gdbserver/target.h @@ -540,6 +540,10 @@ ptid_t mywait (ptid_t ptid, struct target_waitstatus *ourstatus, int options, (*the_target->done_accessing_memory) (); \ } while (0) +#define target_core_of_thread(ptid) \ + (the_target->core_of_thread ? (*the_target->core_of_thread) (ptid) \ + : -1) + int read_inferior_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len); int write_inferior_memory (CORE_ADDR memaddr, const unsigned char *myaddr, -- 1.7.0.4