* linux-arm-low.c (arm_eabi_breakpoint): New variable.
(arm_breakpoint_at): Recognize both breakpoints. (the_low_target): Use the correct breakpoint instruction.
This commit is contained in:
parent
f0b3881fd7
commit
9d1fb17785
2 changed files with 21 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2005-11-13 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
|
* linux-arm-low.c (arm_eabi_breakpoint): New variable.
|
||||||
|
(arm_breakpoint_at): Recognize both breakpoints.
|
||||||
|
(the_low_target): Use the correct breakpoint instruction.
|
||||||
|
|
||||||
2005-11-02 Daniel Jacobowitz <dan@codesourcery.com>
|
2005-11-02 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
* configure.srv (x86_64-*-linux*): Turn on thread_db support.
|
* configure.srv (x86_64-*-linux*): Turn on thread_db support.
|
||||||
|
|
|
@ -70,6 +70,12 @@ arm_set_pc (CORE_ADDR pc)
|
||||||
static const unsigned long arm_breakpoint = 0xef9f0001;
|
static const unsigned long arm_breakpoint = 0xef9f0001;
|
||||||
#define arm_breakpoint_len 4
|
#define arm_breakpoint_len 4
|
||||||
|
|
||||||
|
/* For new EABI binaries. We recognize it regardless of which ABI
|
||||||
|
is used for gdbserver, so single threaded debugging should work
|
||||||
|
OK, but for multi-threaded debugging we only insert the current
|
||||||
|
ABI's breakpoint instruction. For now at least. */
|
||||||
|
static const unsigned long arm_eabi_breakpoint = 0xe7f001f0;
|
||||||
|
|
||||||
static int
|
static int
|
||||||
arm_breakpoint_at (CORE_ADDR where)
|
arm_breakpoint_at (CORE_ADDR where)
|
||||||
{
|
{
|
||||||
|
@ -79,8 +85,12 @@ arm_breakpoint_at (CORE_ADDR where)
|
||||||
if (insn == arm_breakpoint)
|
if (insn == arm_breakpoint)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
if (insn == arm_eabi_breakpoint)
|
||||||
|
return 1;
|
||||||
|
|
||||||
/* If necessary, recognize more trap instructions here. GDB only uses the
|
/* If necessary, recognize more trap instructions here. GDB only uses the
|
||||||
one. */
|
two. */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,7 +112,11 @@ struct linux_target_ops the_low_target = {
|
||||||
arm_cannot_store_register,
|
arm_cannot_store_register,
|
||||||
arm_get_pc,
|
arm_get_pc,
|
||||||
arm_set_pc,
|
arm_set_pc,
|
||||||
|
#ifndef __ARM_EABI__
|
||||||
(const unsigned char *) &arm_breakpoint,
|
(const unsigned char *) &arm_breakpoint,
|
||||||
|
#else
|
||||||
|
(const unsigned char *) &arm_eabi_breakpoint,
|
||||||
|
#endif
|
||||||
arm_breakpoint_len,
|
arm_breakpoint_len,
|
||||||
arm_reinsert_addr,
|
arm_reinsert_addr,
|
||||||
0,
|
0,
|
||||||
|
|
Loading…
Add table
Reference in a new issue