Understand arm breakpoints in aarch64_breakpoint_at

AArch64 GDBserver can debug ARM program, and it should recognize
various arm breakpoint instructions.  This patch should be included
in 17b1509a.

gdb/gdbserver:

2015-12-11  Yao Qi  <yao.qi@linaro.org>

	* linux-aarch64-low.c (aarch64_breakpoint_at): Call
	arm_breakpoint_at if the process is 32-bit.
This commit is contained in:
Yao Qi 2015-12-11 11:19:52 +00:00
parent b37a6290be
commit db91f50261
2 changed files with 16 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2015-12-11 Yao Qi <yao.qi@linaro.org>
* linux-aarch64-low.c (aarch64_breakpoint_at): Call
arm_breakpoint_at if the process is 32-bit.
2015-12-11 Yao Qi <yao.qi@linaro.org>
* linux-aarch32-low.c [__aarch64__]: Use arm_abi_breakpoint

View File

@ -211,14 +211,19 @@ static const gdb_byte aarch64_breakpoint[] = {0x00, 0x00, 0x20, 0xd4};
static int
aarch64_breakpoint_at (CORE_ADDR where)
{
gdb_byte insn[aarch64_breakpoint_len];
if (is_64bit_tdesc ())
{
gdb_byte insn[aarch64_breakpoint_len];
(*the_target->read_memory) (where, (unsigned char *) &insn,
aarch64_breakpoint_len);
if (memcmp (insn, aarch64_breakpoint, aarch64_breakpoint_len) == 0)
return 1;
(*the_target->read_memory) (where, (unsigned char *) &insn,
aarch64_breakpoint_len);
if (memcmp (insn, aarch64_breakpoint, aarch64_breakpoint_len) == 0)
return 1;
return 0;
return 0;
}
else
return arm_breakpoint_at (where);
}
static void