Move [PAC] into a new MI field addr_flags

Add a new print_pc which prints both the PC and a new field addr_flags.
Call this wherever the PC is printed in stack.c.

Add a new gdbarch method get_pc_address_flags to obtain the addr_flag
contents. By default returns an empty string, on AArch64 this returns
PAC if the address has been masked in the frame.

Document this in the manual and NEWS file.

gdb/ChangeLog:

	* NEWS (Other MI changes): New subsection.
	* aarch64-tdep.c (aarch64_get_pc_address_flags): New function.
	(aarch64_gdbarch_init): Add aarch64_get_pc_address_flags.
	* arch-utils.c (default_get_pc_address_flags): New function.
	* arch-utils.h (default_get_pc_address_flags): New declaration.
	* gdbarch.sh: Add get_pc_address_flags.
	* gdbarch.c: Regenerate.
	* gdbarch.h: Likewise.
	* stack.c (print_pc): New function.
	(print_frame_info) (print_frame): Call print_pc.

gdb/doc/ChangeLog:

	* gdb.texinfo (AArch64 Pointer Authentication)
	(GDB/MI Breakpoint Information) (Frame Information): Document
	addr_field.
This commit is contained in:
Alan Hayward 2019-08-16 10:19:18 +01:00
parent fdfc8cf7f0
commit aa7ca1bb44
11 changed files with 120 additions and 10 deletions

View file

@ -995,6 +995,14 @@ default_type_align (struct gdbarch *gdbarch, struct type *type)
return 0;
}
/* See arch-utils.h. */
std::string
default_get_pc_address_flags (frame_info *frame, CORE_ADDR pc)
{
return "";
}
void
_initialize_gdbarch_utils (void)
{