From patchwork Thu Oct 29 17:09:38 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antoine Tremblay X-Patchwork-Id: 9463 Received: (qmail 87237 invoked by alias); 29 Oct 2015 17:10:04 -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 87148 invoked by uid 89); 29 Oct 2015 17:10:03 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL, BAYES_00, SPF_PASS autolearn=ham version=3.3.2 X-HELO: usevmg20.ericsson.net Received: from usevmg20.ericsson.net (HELO usevmg20.ericsson.net) (198.24.6.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Thu, 29 Oct 2015 17:09:58 +0000 Received: from EUSAAHC004.ericsson.se (Unknown_Domain [147.117.188.84]) by usevmg20.ericsson.net (Symantec Mail Security) with SMTP id 14.0C.32596.CD1F1365; Thu, 29 Oct 2015 11:15:56 +0100 (CET) Received: from elxa4wqvvz1.dyn.mo.ca.am.ericsson.se (147.117.188.8) by smtps-am.internal.ericsson.com (147.117.188.84) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 29 Oct 2015 13:09:52 -0400 From: Antoine Tremblay To: CC: Antoine Tremblay Subject: [PATCH 05/10] Remove too simple breakpoint_reinsert_addr implementations. Date: Thu, 29 Oct 2015 13:09:38 -0400 Message-ID: <1446138583-13268-6-git-send-email-antoine.tremblay@ericsson.com> In-Reply-To: <1446138583-13268-1-git-send-email-antoine.tremblay@ericsson.com> References: <1446138583-13268-1-git-send-email-antoine.tremblay@ericsson.com> MIME-Version: 1.0 X-IsSubscribed: yes This patch removes too simple implementations of the breakpoint_reinsert_addr operation. The only reason to keep them around was to support thread events when PTRACE_EVENT_CLONE was not present but this support has been removed in a previous patch. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } Also compilation was tested on aarch64, bfin, cris, crisv32, m32r, mips, nios2, ppc, s390, sparc, tic6x, tile, xtensa. gdb/gdbserver/ChangeLog: * linux-arm-low.c (arm_reinsert_addr): Remove function. (struct linux_target_ops : Set to NULL. * linux-cris-low.c (cris_reinsert_addr> Remove function. (struct linux_target_ops) : Set to NULL. * linux-crisv32-low.c (cris_reinsert_addr): Remove function. (struct linux_target_ops) : Set to NULL. * linux-mips-low.c (mips_reinsert_addr): Remove function. (struct linux_target_ops) : Set to NULL. * linux-nios2-low.c (nios2_reinsert_addr): Remove function. (struct linux_target_ops) : Set to NULL. * linux-sparc-low.c (sparc_reinsert_addr): Remove function. (struct linux_target_ops) : Set to NULL; --- gdb/gdbserver/linux-arm-low.c | 14 +------------- gdb/gdbserver/linux-cris-low.c | 18 +----------------- gdb/gdbserver/linux-crisv32-low.c | 19 +------------------ gdb/gdbserver/linux-mips-low.c | 14 +------------- gdb/gdbserver/linux-nios2-low.c | 14 +------------- gdb/gdbserver/linux-sparc-low.c | 15 +-------------- 6 files changed, 6 insertions(+), 88 deletions(-) diff --git a/gdb/gdbserver/linux-arm-low.c b/gdb/gdbserver/linux-arm-low.c index 2a840bf..8e32fae 100644 --- a/gdb/gdbserver/linux-arm-low.c +++ b/gdb/gdbserver/linux-arm-low.c @@ -315,18 +315,6 @@ arm_breakpoint_at (CORE_ADDR where) return 0; } -/* We only place breakpoints in empty marker functions, and thread locking - is outside of the function. So rather than importing software single-step, - we can just run until exit. */ -static CORE_ADDR -arm_reinsert_addr (void) -{ - struct regcache *regcache = get_thread_regcache (current_thread, 1); - unsigned long pc; - collect_register_by_name (regcache, "lr", &pc); - return pc; -} - /* Fetch the thread-local storage pointer for libthread_db. */ ps_err_e @@ -1039,7 +1027,7 @@ struct linux_target_ops the_low_target = { arm_set_pc, arm_breakpoint_kind_from_pc, arm_sw_breakpoint_from_kind, - arm_reinsert_addr, + NULL, /* breakpoint_reinsert_addr */ 0, arm_breakpoint_at, arm_supports_z_point_type, diff --git a/gdb/gdbserver/linux-cris-low.c b/gdb/gdbserver/linux-cris-low.c index d7b70e3..9f4519c 100644 --- a/gdb/gdbserver/linux-cris-low.c +++ b/gdb/gdbserver/linux-cris-low.c @@ -105,18 +105,6 @@ cris_breakpoint_at (CORE_ADDR where) return 0; } -/* We only place breakpoints in empty marker functions, and thread locking - is outside of the function. So rather than importing software single-step, - we can just run until exit. */ -static CORE_ADDR -cris_reinsert_addr (void) -{ - struct regcache *regcache = get_thread_regcache (current_thread, 1); - unsigned long pc; - collect_register_by_name (regcache, "srp", &pc); - return pc; -} - static void cris_arch_setup (void) { @@ -151,13 +139,9 @@ struct linux_target_ops the_low_target = { cris_set_pc, NULL, /* breakpoint_kind_from_pc */ cris_sw_breakpoint_from_kind, - cris_reinsert_addr, + NULL, /* breakpoint_reinsert_addr */ 0, cris_breakpoint_at, - 0, - 0, - 0, - 0, }; void diff --git a/gdb/gdbserver/linux-crisv32-low.c b/gdb/gdbserver/linux-crisv32-low.c index 4f9afa6..2404d0e 100644 --- a/gdb/gdbserver/linux-crisv32-low.c +++ b/gdb/gdbserver/linux-crisv32-low.c @@ -101,23 +101,6 @@ cris_breakpoint_at (CORE_ADDR where) return 0; } -/* We only place breakpoints in empty marker functions, and thread locking - is outside of the function. So rather than importing software single-step, - we can just run until exit. */ - -/* FIXME: This function should not be needed, since we have PTRACE_SINGLESTEP - for CRISv32. Without it, td_ta_event_getmsg in thread_db_create_event - will fail when debugging multi-threaded applications. */ - -static CORE_ADDR -cris_reinsert_addr (void) -{ - struct regcache *regcache = get_thread_regcache (current_thread, 1); - unsigned long pc; - collect_register_by_name (regcache, "srp", &pc); - return pc; -} - static void cris_write_data_breakpoint (struct regcache *regcache, int bp, unsigned long start, unsigned long end) @@ -439,7 +422,7 @@ struct linux_target_ops the_low_target = { cris_set_pc, NULL, /* breakpoint_kind_from_pc */ cris_sw_breakpoint_from_kind, - cris_reinsert_addr, + NULL, /* breakpoint_reinsert_addr */ 0, cris_breakpoint_at, cris_supports_z_point_type, diff --git a/gdb/gdbserver/linux-mips-low.c b/gdb/gdbserver/linux-mips-low.c index 86f7962..32a91a8 100644 --- a/gdb/gdbserver/linux-mips-low.c +++ b/gdb/gdbserver/linux-mips-low.c @@ -275,18 +275,6 @@ mips_sw_breakpoint_from_kind (int kind, int *size) return (const gdb_byte *) &mips_breakpoint; } -/* We only place breakpoints in empty marker functions, and thread locking - is outside of the function. So rather than importing software single-step, - we can just run until exit. */ -static CORE_ADDR -mips_reinsert_addr (void) -{ - struct regcache *regcache = get_thread_regcache (current_thread, 1); - union mips_register ra; - collect_register_by_name (regcache, "r31", ra.buf); - return register_size (regcache->tdesc, 0) == 4 ? ra.reg32 : ra.reg64; -} - static int mips_breakpoint_at (CORE_ADDR where) { @@ -892,7 +880,7 @@ struct linux_target_ops the_low_target = { mips_set_pc, NULL, /* breakpoint_kind_from_pc */ mips_sw_breakpoint_from_kind, - mips_reinsert_addr, + NULL, /* breakpoint_reinsert_addr */ 0, mips_breakpoint_at, mips_supports_z_point_type, diff --git a/gdb/gdbserver/linux-nios2-low.c b/gdb/gdbserver/linux-nios2-low.c index 369e89c..9380c3b 100644 --- a/gdb/gdbserver/linux-nios2-low.c +++ b/gdb/gdbserver/linux-nios2-low.c @@ -144,18 +144,6 @@ nios2_sw_breakpoint_from_kind (int kind, int *size) return (const gdb_byte *) &nios2_breakpoint; } -/* Implement the breakpoint_reinsert_addr linux_target_ops method. */ - -static CORE_ADDR -nios2_reinsert_addr (void) -{ - union nios2_register ra; - struct regcache *regcache = get_thread_regcache (current_thread, 1); - - collect_register_by_name (regcache, "ra", ra.buf); - return ra.reg32; -} - /* Implement the breakpoint_at linux_target_ops method. */ static int @@ -279,7 +267,7 @@ struct linux_target_ops the_low_target = nios2_set_pc, NULL, /* breakpoint_kind_from_pc */ nios2_sw_breakpoint_from_kind, - nios2_reinsert_addr, + NULL, /* breakpoint_reinsert_addr */ 0, nios2_breakpoint_at, }; diff --git a/gdb/gdbserver/linux-sparc-low.c b/gdb/gdbserver/linux-sparc-low.c index e6a4f84..54a849c 100644 --- a/gdb/gdbserver/linux-sparc-low.c +++ b/gdb/gdbserver/linux-sparc-low.c @@ -265,19 +265,6 @@ sparc_breakpoint_at (CORE_ADDR where) return 0; } -/* We only place breakpoints in empty marker functions, and thread locking - is outside of the function. So rather than importing software single-step, - we can just run until exit. */ -static CORE_ADDR -sparc_reinsert_addr (void) -{ - struct regcache *regcache = get_thread_regcache (current_thread, 1); - CORE_ADDR lr; - /* O7 is the equivalent to the 'lr' of other archs. */ - collect_register_by_name (regcache, "o7", &lr); - return lr; -} - static void sparc_arch_setup (void) { @@ -333,7 +320,7 @@ struct linux_target_ops the_low_target = { NULL, NULL, /* breakpoint_kind_from_pc */ sparc_sw_breakpoint_from_kind, - sparc_reinsert_addr, + NULL, /* breakpoint_reinsert_addr */ 0, sparc_breakpoint_at, NULL, /* supports_z_point_type */