gdb: Introduce is_address_tagged target hook

This commit introduces a new target hook, target_is_address_tagged,
which is used instead of the gdbarch_tagged_address_p gdbarch hook in
the upper layer (printcmd.c).

This change enables easy specialization of memory tagging address
check per target in the future. As target_is_address_tagged continues
to utilize the gdbarch_tagged_address_p hook, there is no change in
behavior for all the targets that use the new target hook (i.e., the
remote.c, aarch64-linux-nat.c, and corelow.c targets).

Just the gdbarch_tagged_address_p signature is changed for convenience,
since target_is_address_tagged takes the address to be checked as a
CORE_ADDR type.

Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
Approved-By: Luis Machado <luis.machado@arm.com>
Tested-By: Luis Machado <luis.machado@arm.com>
This commit is contained in:
Gustavo Romero
2024-04-18 20:10:36 +00:00
committed by Luis Machado
parent a0e28bb151
commit 7202f41f5f
13 changed files with 100 additions and 25 deletions

View File

@@ -102,7 +102,7 @@ default_memtag_to_string (struct gdbarch *gdbarch, struct value *tag)
/* See arch-utils.h */
bool
default_tagged_address_p (struct gdbarch *gdbarch, struct value *address)
default_tagged_address_p (struct gdbarch *gdbarch, CORE_ADDR address)
{
/* By default, assume the address is untagged. */
return false;