From patchwork Sun Sep 10 20:11:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 22801 Received: (qmail 95736 invoked by alias); 10 Sep 2017 20:11:36 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 95581 invoked by uid 89); 10 Sep 2017 20:11:36 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy=PROCESS, 34506 X-HELO: sesbmg23.ericsson.net Received: from sesbmg23.ericsson.net (HELO sesbmg23.ericsson.net) (193.180.251.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 10 Sep 2017 20:11:34 +0000 Received: from ESESSHC018.ericsson.se (Unknown_Domain [153.88.183.72]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id AB.C4.21299.37C95B95; Sun, 10 Sep 2017 22:11:32 +0200 (CEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.72) with Microsoft SMTP Server (TLS) id 14.3.352.0; Sun, 10 Sep 2017 22:11:31 +0200 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from elxacz23q12.localdomain (80.216.43.226) by DB4PR07MB316.eurprd07.prod.outlook.com (2a01:111:e400:982f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.4; Sun, 10 Sep 2017 20:11:30 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 1/3] gdbserver: Remove duplicate functions to find any thread of process Date: Sun, 10 Sep 2017 22:11:13 +0200 Message-ID: <1505074275-1662-2-git-send-email-simon.marchi@ericsson.com> In-Reply-To: <1505074275-1662-1-git-send-email-simon.marchi@ericsson.com> References: <1505074275-1662-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: AM4PR0101CA0084.eurprd01.prod.exchangelabs.com (2603:10a6:200:41::52) To DB4PR07MB316.eurprd07.prod.outlook.com (2a01:111:e400:982f::24) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 705dc578-c0b3-41e5-3e32-08d4f888201f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB4PR07MB316; X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB316; 3:ikA8HAJEORzoY9gBQblkh9L5OtcCmpeqAurpNhR+g6Fd4nfl/G2Yg6vghpmFRADehTcMm3oTs3mSV46Z5fENuN1e+M13gBp8lSlKR7Lpv9+XQh7IihPAOex2JkP9X/8cIl9gtCNCM4spIma8Jn0TohDYbapq6AW2x/7zpyp73gsijaQzAwTcYskedIH7qB56ErF6nxY6wD8Bowq2XLLNcMS/Iu6jMIBBys/xPhpPd+RPaL78aWw0Fz/xRzx/kTjH; 25:HZXh/7148QNjUx9ihN8sN6ehXJxF9Pa6KC/1HPq/bFqeufsUp3GMeoQrgnEhQf4cxThZtze6RNK8AkNpBH8xTWdxbOvwb0hH5WIFFPsb4Wqw5k5ey5urWm2vGG+Aj4oMoGe/xQJfMO2YEgnZWxH6kqZwOeoQvX/VicU6SMXCvkDPC6asdDxYedvRvmPiBNf2FRrGbXBIT2dKmuVn6t3Kp6i8/wf1nmZl0Cr0vy5nhiNclzHSlByk07/kXgyhIReKXWshN1+XM4UgfROm9ecyZWd+tJ0XzGfIqh5T1CZS9NIGYbn8/sa8KgvOqcZHnqICuvmc0uQmUafBeOgYN1aEfw==; 31:SnPeN5UkzJpunLxiZqVtYj2XPmQZtfbzdjjx4jSeRsfvzFeQULdS5uYfzjR9vi0V/lae9qiuzA7WtGBfUzJO3naB5LYz3JnxMXV9Ig73rQiCNUpCOFU6z5roY+UQSPvKVo49SdSW8TFHQ4F2Wf6hF1/k2fSJOUxqNvIJo0cZFd61L0/jvDubT9GlKJAFBOdFSH5+/EicCioDkpFZ0bzhBr3HxDgcu7DmopHNF3139RY= X-MS-TrafficTypeDiagnostic: DB4PR07MB316: X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB316; 20:MoL8bp0pKSUOKr6gdAUcIRxH9l8t/rhjC4paWbeVbTRtiVJxxC8aaAo8AHtyybq4pHqG2Tg9HbUwm0c3IlBDN2WQX6v07I1jrqguB9CPwi4kWDgtZIlXxIB2GBwuDD5wDiBrspUN2knei/EqHMeb0vftANTfJ+fQEImkbD80PqZHERrfOtd87rZx6PDhuWqKcejdzfjTSxBJ10rVtzH88fatkmtnZHLzOBKlsgkIcZ2qJoQUgz3iykxHpAo2yrOhX3f9WbLS+erzEfvfX5AJF+Lg2tfzG8c6tA7HnRbYf4SbShZbNIeR3pmigm8FdxZ/8Tm4E3RdmiR0ohqTn6Qkt8Cb+oWsAtOjck+QtaGt6UrQsF+Q23zBytzu8Va4hejl/OU3Y1QbLRXCPmd1otKJkbSPTMgMSfdxweOMaxcHrYd++racis2xqwH1pug25RqxDFLtiF9iXzTZ3HSqkiKFyAK/frCuPbP42EgK82IHPxlcCeakSDq8a45myljBh4ER; 4:/rxsEBZPU7sm1HnuO7hg617+kWuCCGZwg4ksbR8GEO6QeyN1dRmV2MKAZ/miBXjA/YmQUTVx+DQnGWkK6gvdCjyd7PsVIsiEjks23VxISfOH1o6XWFtPXLPk0QovW6WWvVH9Ytxr+VkYst3UBZ0v6hCfC+RZnf47nd+2j7h7Jmh0hSxqDb/ITCsQb6p3BylxhapYp1m+lb3GBtSjhvl7b9Gw74BsbkuahshrDagXlM23EaYKZW27jDavkEzug3jPA50rB5iNdOMJdOFPhLLqdkO020826CMBoFwXegideuk= X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(6041248)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(20161123555025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB4PR07MB316; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB4PR07MB316; X-Forefront-PRVS: 04267075BD X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(199003)(54534003)(189002)(7350300001)(25786009)(107886003)(6116002)(81156014)(81166006)(7736002)(8676002)(76176999)(50986999)(66066001)(47776003)(42186005)(50226002)(33646002)(3846002)(110136004)(97736004)(478600001)(5660300001)(106356001)(86362001)(5003940100001)(105586002)(6486002)(6506006)(2950100002)(6666003)(6916009)(68736007)(6512007)(189998001)(101416001)(305945005)(2906002)(36756003)(53936002)(2361001)(50466002)(4326008)(2351001)(48376002)(37363001); DIR:OUT; SFP:1101; SCL:1; SRVR:DB4PR07MB316; H:elxacz23q12.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB4PR07MB316; 23:mydPS94l1HBRa+7UzhDEvNWtdVXh/Je+f2bMLjea+S?= =?us-ascii?Q?+ya4sNKNFph3jcYHDJ2mBpHs9BhXYiKp5h/l1R9jMAf22xifTvIL6dbUn9Uh?= =?us-ascii?Q?aAOpb9esf3zLsenLMEUQqwjTZEvNeFkxa3dae7aPVqZc28TtldpU6N4UzxK8?= =?us-ascii?Q?VJ7Txa5yDxKwkiDNoDig48rc7i0Nu9pauLZIl67nKsX2HJbk6jBlAOQPFahj?= =?us-ascii?Q?rc3AgnMb1MokFF0RlEJs9fTIrvghLSb+v8kJRXtGOqxkqNuk0yLsaxsZXHqu?= =?us-ascii?Q?8+XpRRvsJdQSV8QI76Hk68Hw02ar3VrfX9ZCkGp3fRx32r1DT4nsueNvyRiO?= =?us-ascii?Q?vVRqjJHbXPvskXCFmyw5rtnVeUD4OPQd7W3xlvlPLFfKWNRphJmodaBKBGt/?= =?us-ascii?Q?miLj3X7x98gTCovKSf7QATCsC5Ibf7hjP8+BTBl+UbDyT6Ad3K3B+N9pgUjP?= =?us-ascii?Q?JFO5E5qN89wSiOIJZsIwKxBw9C8zANFgv9+qF97+o1T3vkyPwSTwh7y2+chI?= =?us-ascii?Q?jAV6up0Zet7fl7dvFrEbQOvyPcMbhoHFpEsVVpIGPjITvr0mh/EjxvEQFGMz?= =?us-ascii?Q?Fr2s8oitQyJo3Ql537YvMDsiM4VC3te5Xnfoe+VTkT0uw8GqQiMifaWi9plb?= =?us-ascii?Q?mFEliOj8tn7/ppovt8w9ESQRNCU86kRlcDKI/dpe52QKZGhX8iUGHbQYN7En?= =?us-ascii?Q?JPIrYpsyDVtliwxhzdsliGCR8ua51FFJy5wTBZHz6GWdlaKtnuVLis8crPyT?= =?us-ascii?Q?qP93wnez69yWF0yyjRtrabFqeiwY6LYDOUKZFj4Oy7HWbU1FbpfGn2ix55fo?= =?us-ascii?Q?SeG7tKaov7lffaoGaYTqZK1oXHKJViY1J1gH//KU2jtS327+T9X+rzxW7X/r?= =?us-ascii?Q?0E9I9JjSC9sr7S80ugDe7sB8UH65FSvFX02DU5FSoooE3zC4F7zoyN7b4QTf?= =?us-ascii?Q?DRmuhC8CipPYLwFtUJ/dFwh3k/Cx/ScLfmyZpiW4qp5zicEJhjXgBTfG8QFk?= =?us-ascii?Q?u1TcCduVBwTadDHO7T/tpEH1A/XKSf9Dspa3rFgzwXLYI3ktw/FdBOLX1x0N?= =?us-ascii?Q?G5sLfPc7+Yb+G7Vtavz9QnskU7Oi3V0E3eTYJBYvlafCXoekv14N9s5XCgVE?= =?us-ascii?Q?RDUgqcJo1eFT5Q5+932D3GCLMa0bU5EcsBT8YmznRoCzdXq60M58ZVTD/taf?= =?us-ascii?Q?ENpm6xRwntnIs=3D?= X-Microsoft-Exchange-Diagnostics: 1; DB4PR07MB316; 6:EFeJ64MjTwMy79kmtiIOWor49Ai/1pCwxohF5kioRUaFoJ+TsOxwkBB2LUyNWMGoaUdenZYHiIbVzZGFAOFF8Xq+/2MpXXz892Dn/mL9JR5p3b8g5Xgkab4H+7jUZ2cJDkU4B62IjmYEolUI02vC4d/B0oSE1SKqX72CIZl/Fl3GPPtEq9wnXEAfGATpqc5xUJ22NQ7M2EQholClGIbXKW4CT956uSmlLZI5Y8FQcimi0WJ+UE6kKLz+NhocW2WDr6GJdmUcEI/9Zrg6+CEtJS1AGDvJ6jfQ/3jERPYWuLMEBIWB415lpi5Jezq6iK9uT4UK5PCh5HQGvJE5zRJHcw==; 5:47FI8u8HIOdqnI6t5ZXSEIRGwsILFYHsAtcMPq5UWiABeGqXkbr2tZRaaMdpBZ9c4TsKVNtIS9A3dq/dYFz7NHW0FS1vHUJfQRcEa4B4f4CMTQsz78I69u1BWlnvMxMlJj86KQcB2jAAvplcYkzQDg==; 24:B457jq2UsttmDKmAoySoYXJTr0Y3u9iE+J4X4mTSWaysvipmv0H1FtA5/fLUMF2dD961U2W6/vgvc68J1kP/38BBH4p4Umk3PLEkuXbMWEU=; 7:fQveYM9hIUdAC7gP3aQBF+FSrCCmuPOpY7Uj0vjtIrlKvXA5k33ukWLKGGp9XQ0wllKI7Y17EUQjfNJougBZ4ymi6L/3DCN0sjWDiDIIN6rFUvvb0B9/YZJMuyzy8Ta09kBCWVxrjW1Wrxk/L425zjkfAm9sQ+d4QcihFLsORigWrOjh1pDk/v38roTefVURwRC3BE4IkCid7+AvCSUV7q6/mJYmDefYVTJuhJXpgg4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2017 20:11:30.1429 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR07MB316 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes We have about 6 functions/callbacks to find_inferior meant to find a thread that belongs to a given pid. Remove all but find_any_thread_of_pid and replace their uses with find_any_thread_of_pid. gdbserver/ChangeLog: * server.c (first_thread_of): Remove. (process_serial_event): Replace usage of first_thread_of with find_any_thread_of_pid. * tracepoint.c (same_process_p): Remove. (gdb_agent_about_to_close): Replace usage of same_process_p with find_any_thread_of_pid. * linux-x86-low.c (same_process_callback): Remove. (x86_arch_setup_process_callback): Replace usage of same_process_callback with find_any_thread_of_pid. * thread-db.c (any_thread_of): Remove. (switch_to_process): Replace usage of any_thread_of with find_any_thread_of_pid. * inferiors.c (thread_pid_matches_callback): Remove. (find_thread_process): Adjust to use find_any_thread_of_pid. --- gdb/gdbserver/inferiors.c | 14 +------------- gdb/gdbserver/linux-x86-low.c | 15 +-------------- gdb/gdbserver/server.c | 19 +++---------------- gdb/gdbserver/thread-db.c | 15 +-------------- gdb/gdbserver/tracepoint.c | 14 +------------- 5 files changed, 7 insertions(+), 70 deletions(-) diff --git a/gdb/gdbserver/inferiors.c b/gdb/gdbserver/inferiors.c index 3c171a1..2212850 100644 --- a/gdb/gdbserver/inferiors.c +++ b/gdb/gdbserver/inferiors.c @@ -141,25 +141,13 @@ find_thread_ptid (ptid_t ptid) return (struct thread_info *) find_inferior_id (&all_threads, ptid); } -/* Predicate function for matching thread entry's pid to the given - pid value passed by address in ARGS. */ - -static int -thread_pid_matches_callback (struct inferior_list_entry *entry, void *args) -{ - return (ptid_get_pid (entry->id) == *(pid_t *)args); -} - /* Find a thread associated with the given PROCESS, or NULL if no such thread exists. */ static struct thread_info * find_thread_process (const struct process_info *const process) { - pid_t pid = ptid_get_pid (ptid_of (process)); - - return (struct thread_info *) - find_inferior (&all_threads, thread_pid_matches_callback, &pid); + return find_any_thread_of_pid (process->entry.id.pid ()); } /* Helper for find_any_thread_of_pid. Returns true if a thread diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c index 844a165..49f6b2d 100644 --- a/gdb/gdbserver/linux-x86-low.c +++ b/gdb/gdbserver/linux-x86-low.c @@ -846,17 +846,6 @@ x86_linux_read_description (void) gdb_assert_not_reached ("failed to return tdesc"); } -/* Callback for find_inferior. Stops iteration when a thread with a - given PID is found. */ - -static int -same_process_callback (struct inferior_list_entry *entry, void *data) -{ - int pid = *(int *) data; - - return (ptid_get_pid (entry->id) == pid); -} - /* Callback for for_each_inferior. Calls the arch_setup routine for each process. */ @@ -866,9 +855,7 @@ x86_arch_setup_process_callback (struct inferior_list_entry *entry) int pid = ptid_get_pid (entry->id); /* Look up any thread of this processes. */ - current_thread - = (struct thread_info *) find_inferior (&all_threads, - same_process_callback, &pid); + current_thread = find_any_thread_of_pid (pid); the_low_target.arch_setup (); } diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c index 56c6393..bedb87b 100644 --- a/gdb/gdbserver/server.c +++ b/gdb/gdbserver/server.c @@ -3450,17 +3450,6 @@ gdbserver_show_disableable (FILE *stream) break; \ } -static int -first_thread_of (struct inferior_list_entry *entry, void *args) -{ - int pid = * (int *) args; - - if (ptid_get_pid (entry->id) == pid) - return 1; - - return 0; -} - static void kill_inferior_callback (struct inferior_list_entry *entry) { @@ -4162,11 +4151,9 @@ process_serial_event (void) && ptid_equal (pid_to_ptid (pid), gdb_id)) { - struct thread_info *thread = - (struct thread_info *) find_inferior (&all_threads, - first_thread_of, - &pid); - if (!thread) + thread_info *thread = find_any_thread_of_pid (pid); + + if (thread == NULL) { write_enn (own_buf); break; diff --git a/gdb/gdbserver/thread-db.c b/gdb/gdbserver/thread-db.c index 1ffb79d..9b867b8 100644 --- a/gdb/gdbserver/thread-db.c +++ b/gdb/gdbserver/thread-db.c @@ -733,25 +733,12 @@ thread_db_init (void) return 0; } -static int -any_thread_of (struct inferior_list_entry *entry, void *args) -{ - int *pid_p = (int *) args; - - if (ptid_get_pid (entry->id) == *pid_p) - return 1; - - return 0; -} - static void switch_to_process (struct process_info *proc) { int pid = pid_of (proc); - current_thread = - (struct thread_info *) find_inferior (&all_threads, - any_thread_of, &pid); + current_thread = find_any_thread_of_pid (pid); } /* Disconnect from libthread_db and free resources. */ diff --git a/gdb/gdbserver/tracepoint.c b/gdb/gdbserver/tracepoint.c index 68ce10f..0f41ff4 100644 --- a/gdb/gdbserver/tracepoint.c +++ b/gdb/gdbserver/tracepoint.c @@ -3956,17 +3956,6 @@ cmd_qtstmat (char *packet) run_inferior_command (packet, strlen (packet) + 1); } -/* Helper for gdb_agent_about_to_close. - Return non-zero if thread ENTRY is in the same process in DATA. */ - -static int -same_process_p (struct inferior_list_entry *entry, void *data) -{ - int *pid = (int *) data; - - return ptid_get_pid (entry->id) == *pid; -} - /* Sent the agent a command to close it. */ void @@ -3981,8 +3970,7 @@ gdb_agent_about_to_close (int pid) saved_thread = current_thread; /* Find any thread which belongs to process PID. */ - current_thread = (struct thread_info *) - find_inferior (&all_threads, same_process_p, &pid); + current_thread = find_any_thread_of_pid (pid); strcpy (buf, "close");