This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 2/2] [AArch64] Add more debugging output to aarch64_displaced_step_fixup
- From: Alan Hayward <Alan dot Hayward at arm dot com>
- To: Luis Machado <luis dot machado at linaro dot org>
- Cc: "gdb-patches\\@sourceware.org" <gdb-patches at sourceware dot org>, nd <nd at arm dot com>
- Date: Thu, 9 Jan 2020 16:14:09 +0000
- Subject: Re: [PATCH 2/2] [AArch64] Add more debugging output to aarch64_displaced_step_fixup
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yJm/BCih85s+TL7tG8hCEf+nk5HNcQsR66j+zRm6rJU=; b=E4argR7hMaBY6JHOg0hoQ8ycXXqaLQPzThyc5D0E9glNqhgiO1uNXru0qaBmovr9PyBcfu3MHrXwigarCdP7ep1N1qDIF/j3VlYb29hDuQeTVuSdawXrgjmare2Wem3gol2PKzRyfTI3fy3Gi+0T5p9KveAyoFUL2C4xKccCKcIdqr803Vj7S6T1gzCgwpG1dZwJN0h/Xq/kgWhtjt3fYx341sqDw+cpfCnaEQcQElL4bC506l6fH7Q30MhhnpLhlLE64E7N2ePW5SPcDf/ivFEdTYFGsBbdLlIxtiSDxCZw0Osfrcfs8uRGu/ZnE0cpSt0LYhi5psVhc8IAU0SY1Q==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AeojaEIx29yw0vPkXeZA7CCB9RLqa9cVhUQD8A5hTp4T6URQX6zW9CVPiO+p9MZ452mnzpZE/n/3tFYL+GSOeJ4Fczl9TQQg78teVBUoBUn6LM1FFZ6JRw8UpDRlOHyO/6JSBbJoCak77sbN2aLWszTCLhF1wCoynw80yNAJ/29HPmWwNRd3Mu2Svg8Ppjz9EURUIll8Mn3K3HH3/IjguUX84BtWQxKOndYg1xfoE/U/PgfuyhvwWEcZXb3xwMbvFRlEHgC+wEaLPsbrF2ox/UOp4BeIhIOu5k8jQY4cZJIGZnzR8r/eV8sSjVKKbXp+p14o40vSOlquyy8lTWgyow==
- Original-authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alan dot Hayward at arm dot com;
- References: <20191230162535.21211-1-luis.machado@linaro.org> <20191230162535.21211-2-luis.machado@linaro.org>
> On 30 Dec 2019, at 16:25, Luis Machado <luis.machado@linaro.org> wrote:
>
> While debugging the step-over-syscall problem, i wanted to see a bit more
> debugging output to try to determine the root cause.
>
> This patch does this.
>
> gdb/ChangeLog:
>
> 2019-12-30 Luis Machado <luis.machado@linaro.org>
>
> * aarch64-tdep.c (aarch64_displaced_step_fixup): Add more debugging
> output.
>
> Signed-off-by: Luis Machado <luis.machado@linaro.org>
> ---
> gdb/aarch64-tdep.c | 24 +++++++++++++++++++++++-
> 1 file changed, 23 insertions(+), 1 deletion(-)
>
> diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
> index a639b753cd..2d6c5a4bcb 100644
> --- a/gdb/aarch64-tdep.c
> +++ b/gdb/aarch64-tdep.c
> @@ -3058,8 +3058,16 @@ aarch64_displaced_step_fixup (struct gdbarch *gdbarch,
> /* Fetch the current PC, after the displaced execution took place. */
> regcache_cooked_read_unsigned (regs, AARCH64_PC_REGNUM, &pc);
>
> + if (debug_displaced)
> + debug_printf ("displaced: PC after stepping: %s (was %s).\n",
> + paddress (gdbarch, pc), paddress (gdbarch, to));
Minor nit: Capital letter for the first word “Displaced”.
Ditto for the rest of the patch.
Otherwise ok.
Once 1/2 is okayed, happy for updated version of this to be pushed without another review.
> +
> if (dsc->cond)
> {
> + if (debug_displaced)
> + debug_printf ("displaced: [Conditional] pc_adjust before: %d\n",
> + dsc->pc_adjust);
> +
> if (pc - to == 8)
> {
> /* Condition is true. */
> @@ -3072,8 +3080,17 @@ aarch64_displaced_step_fixup (struct gdbarch *gdbarch,
> }
> else
> gdb_assert_not_reached ("Unexpected PC value after displaced stepping");
> +
> + if (debug_displaced)
> + debug_printf ("displaced: [Conditional] pc_adjust after: %d\n",
> + dsc->pc_adjust);
> }
>
> + if (debug_displaced)
> + debug_printf ("displaced: %s PC by %d\n",
> + dsc->should_adjust_pc? "adjusting" : "not adjusting",
> + dsc->pc_adjust);
> +
> if (dsc->should_adjust_pc)
> {
>
> @@ -3082,7 +3099,12 @@ aarch64_displaced_step_fixup (struct gdbarch *gdbarch,
> and the instruction after the syscall instruction. Make sure we don't
> adjust the PC when we did not really move. */
> if ((pc - to) == 0)
> - dsc->pc_adjust = 0;
> + {
> + if (debug_displaced)
> + debug_printf ("displaced: PC did not move. Discarding PC \
> +adjustment.\n");
> + dsc->pc_adjust = 0;
> + }
>
> if (debug_displaced)
> {
> --
> 2.17.1
>