mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 04:49:54 +08:00
Remove too simple breakpoint_reinsert_addr implementations.
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 <breakpoint_reinsert_addr>: Set to NULL. * linux-cris-low.c (cris_reinsert_addr> Remove function. (struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL. * linux-crisv32-low.c (cris_reinsert_addr): Remove function. (struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL. * linux-mips-low.c (mips_reinsert_addr): Remove function. (struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL. * linux-nios2-low.c (nios2_reinsert_addr): Remove function. (struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL. * linux-sparc-low.c (sparc_reinsert_addr): Remove function. (struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
This commit is contained in:
@ -1,3 +1,18 @@
|
|||||||
|
2015-11-30 Antoine Tremblay <antoine.tremblay@ericsson.com>
|
||||||
|
|
||||||
|
* linux-arm-low.c (arm_reinsert_addr): Remove function.
|
||||||
|
(struct linux_target_ops <breakpoint_reinsert_addr>: Set to NULL.
|
||||||
|
* linux-cris-low.c (cris_reinsert_addr> Remove function.
|
||||||
|
(struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
|
||||||
|
* linux-crisv32-low.c (cris_reinsert_addr): Remove function.
|
||||||
|
(struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
|
||||||
|
* linux-mips-low.c (mips_reinsert_addr): Remove function.
|
||||||
|
(struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
|
||||||
|
* linux-nios2-low.c (nios2_reinsert_addr): Remove function.
|
||||||
|
(struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
|
||||||
|
* linux-sparc-low.c (sparc_reinsert_addr): Remove function.
|
||||||
|
(struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
|
||||||
|
|
||||||
2015-11-30 Antoine Tremblay <antoine.tremblay@ericsson.com>
|
2015-11-30 Antoine Tremblay <antoine.tremblay@ericsson.com>
|
||||||
|
|
||||||
* linux-low.c (linux_look_up_symbols): Don't call
|
* linux-low.c (linux_look_up_symbols): Don't call
|
||||||
|
@ -317,18 +317,6 @@ arm_breakpoint_at (CORE_ADDR where)
|
|||||||
return 0;
|
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. */
|
/* Fetch the thread-local storage pointer for libthread_db. */
|
||||||
|
|
||||||
ps_err_e
|
ps_err_e
|
||||||
@ -1044,7 +1032,7 @@ struct linux_target_ops the_low_target = {
|
|||||||
arm_set_pc,
|
arm_set_pc,
|
||||||
arm_breakpoint_kind_from_pc,
|
arm_breakpoint_kind_from_pc,
|
||||||
arm_sw_breakpoint_from_kind,
|
arm_sw_breakpoint_from_kind,
|
||||||
arm_reinsert_addr,
|
NULL, /* breakpoint_reinsert_addr */
|
||||||
0,
|
0,
|
||||||
arm_breakpoint_at,
|
arm_breakpoint_at,
|
||||||
arm_supports_z_point_type,
|
arm_supports_z_point_type,
|
||||||
|
@ -105,18 +105,6 @@ cris_breakpoint_at (CORE_ADDR where)
|
|||||||
return 0;
|
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
|
static void
|
||||||
cris_arch_setup (void)
|
cris_arch_setup (void)
|
||||||
{
|
{
|
||||||
@ -151,13 +139,9 @@ struct linux_target_ops the_low_target = {
|
|||||||
cris_set_pc,
|
cris_set_pc,
|
||||||
NULL, /* breakpoint_kind_from_pc */
|
NULL, /* breakpoint_kind_from_pc */
|
||||||
cris_sw_breakpoint_from_kind,
|
cris_sw_breakpoint_from_kind,
|
||||||
cris_reinsert_addr,
|
NULL, /* breakpoint_reinsert_addr */
|
||||||
0,
|
0,
|
||||||
cris_breakpoint_at,
|
cris_breakpoint_at,
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -101,23 +101,6 @@ cris_breakpoint_at (CORE_ADDR where)
|
|||||||
return 0;
|
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
|
static void
|
||||||
cris_write_data_breakpoint (struct regcache *regcache,
|
cris_write_data_breakpoint (struct regcache *regcache,
|
||||||
int bp, unsigned long start, unsigned long end)
|
int bp, unsigned long start, unsigned long end)
|
||||||
@ -439,7 +422,7 @@ struct linux_target_ops the_low_target = {
|
|||||||
cris_set_pc,
|
cris_set_pc,
|
||||||
NULL, /* breakpoint_kind_from_pc */
|
NULL, /* breakpoint_kind_from_pc */
|
||||||
cris_sw_breakpoint_from_kind,
|
cris_sw_breakpoint_from_kind,
|
||||||
cris_reinsert_addr,
|
NULL, /* breakpoint_reinsert_addr */
|
||||||
0,
|
0,
|
||||||
cris_breakpoint_at,
|
cris_breakpoint_at,
|
||||||
cris_supports_z_point_type,
|
cris_supports_z_point_type,
|
||||||
|
@ -275,18 +275,6 @@ mips_sw_breakpoint_from_kind (int kind, int *size)
|
|||||||
return (const gdb_byte *) &mips_breakpoint;
|
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
|
static int
|
||||||
mips_breakpoint_at (CORE_ADDR where)
|
mips_breakpoint_at (CORE_ADDR where)
|
||||||
{
|
{
|
||||||
@ -892,7 +880,7 @@ struct linux_target_ops the_low_target = {
|
|||||||
mips_set_pc,
|
mips_set_pc,
|
||||||
NULL, /* breakpoint_kind_from_pc */
|
NULL, /* breakpoint_kind_from_pc */
|
||||||
mips_sw_breakpoint_from_kind,
|
mips_sw_breakpoint_from_kind,
|
||||||
mips_reinsert_addr,
|
NULL, /* breakpoint_reinsert_addr */
|
||||||
0,
|
0,
|
||||||
mips_breakpoint_at,
|
mips_breakpoint_at,
|
||||||
mips_supports_z_point_type,
|
mips_supports_z_point_type,
|
||||||
|
@ -144,18 +144,6 @@ nios2_sw_breakpoint_from_kind (int kind, int *size)
|
|||||||
return (const gdb_byte *) &nios2_breakpoint;
|
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. */
|
/* Implement the breakpoint_at linux_target_ops method. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -279,7 +267,7 @@ struct linux_target_ops the_low_target =
|
|||||||
nios2_set_pc,
|
nios2_set_pc,
|
||||||
NULL, /* breakpoint_kind_from_pc */
|
NULL, /* breakpoint_kind_from_pc */
|
||||||
nios2_sw_breakpoint_from_kind,
|
nios2_sw_breakpoint_from_kind,
|
||||||
nios2_reinsert_addr,
|
NULL, /* breakpoint_reinsert_addr */
|
||||||
0,
|
0,
|
||||||
nios2_breakpoint_at,
|
nios2_breakpoint_at,
|
||||||
};
|
};
|
||||||
|
@ -265,19 +265,6 @@ sparc_breakpoint_at (CORE_ADDR where)
|
|||||||
return 0;
|
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
|
static void
|
||||||
sparc_arch_setup (void)
|
sparc_arch_setup (void)
|
||||||
{
|
{
|
||||||
@ -333,7 +320,7 @@ struct linux_target_ops the_low_target = {
|
|||||||
NULL,
|
NULL,
|
||||||
NULL, /* breakpoint_kind_from_pc */
|
NULL, /* breakpoint_kind_from_pc */
|
||||||
sparc_sw_breakpoint_from_kind,
|
sparc_sw_breakpoint_from_kind,
|
||||||
sparc_reinsert_addr,
|
NULL, /* breakpoint_reinsert_addr */
|
||||||
0,
|
0,
|
||||||
sparc_breakpoint_at,
|
sparc_breakpoint_at,
|
||||||
NULL, /* supports_z_point_type */
|
NULL, /* supports_z_point_type */
|
||||||
|
Reference in New Issue
Block a user