binutils-gdb/gdb/arch
Luis Machado cf44c9fa1b AArch64: Report tag violation error information
Whenever a memory tag violation occurs, we get a SIGSEGV. Additional
information can be obtained through the siginfo data structure.

For AArch64 the Linux kernel may expose the fault address and tag
information, if we have a synchronous event. Otherwise there is
no fault address available.

The synchronous event looks like this:

--
(gdb) continue
Continuing.

Program received signal SIGSEGV, Segmentation fault
Memory tag violation while accessing address 0x0500fffff7ff8000
Allocation tag 0x1.
Logical tag 0x5
--

The asynchronous event looks like this:

--
(gdb) continue
Continuing.

Program received signal SIGSEGV, Segmentation fault
Memory tag violation
Fault address unavailable.
--

gdb/ChangeLog:

2021-03-24  Luis Machado  <luis.machado@linaro.org>

	* aarch64-linux-tdep.c
	(aarch64_linux_report_signal_info): New function.
	(aarch64_linux_init_abi): Register
	aarch64_linux_report_signal_info as the report_signal_info hook.
	* arch/aarch64-linux.h (SEGV_MTEAERR): Define.
	(SEGV_MTESERR): Define.
2021-03-24 14:56:07 -03:00
..
aarch32.c
aarch32.h
aarch64-insn.c
aarch64-insn.h
aarch64-mte-linux.c AArch64: Implement the memory tagging gdbarch hooks 2021-03-24 14:55:14 -03:00
aarch64-mte-linux.h AArch64: Report tag violation error information 2021-03-24 14:56:07 -03:00
aarch64.c
aarch64.h
amd64.c
amd64.h
arc.c
arc.h
arm-get-next-pcs.c
arm-get-next-pcs.h
arm-linux.c
arm-linux.h
arm.c
arm.h
i386.c
i386.h
ppc-linux-common.c
ppc-linux-common.h
ppc-linux-tdesc.h
riscv.c
riscv.h
tic6x.c
tic6x.h
xtensa.h