old-cross-binutils/gdb/testsuite/gdb.arch
Pierre Langlois 487d975399 Add support for the __flash qualifier on AVR
The __flash qualifier is part of the named address spaces for AVR [1]. It
allows putting read-only data in the flash memory, normally reserved for
code.

When used together with a pointer, the DW_AT_address_class attribute is set
to 1 and allows GDB to detect that when it will be dereferenced, the data
will be loaded from the flash memory (with the LPM instruction).

We can now properly debug the following code:

~~~
const __flash char data_in_flash = 0xab;

int
main (void)
{
  const __flash char *pointer_to_flash = &data_in_flash;
}
~~~

~~~
(gdb) print pointer_to_flash
$1 = 0x1e8 <data_in_flash> "\253"
(gdb) print/x *pointer_to_flash
$2 = 0xab
(gdb) x/x pointer_to_flash
0x1e8 <data_in_flash>: 0xXXXXXXab
~~~

Whereas previously, GDB would revert to the default address space which is
RAM and mapped in higher memory:

~~~
(gdb) print pointer_to_flash
$1 = 0x8001e8 ""
~~~

[1] https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html

2014-07-15  Pierre Langlois  <pierre.langlois@embecosm.com>

gdb/
	* avr-tdep.c (AVR_TYPE_ADDRESS_CLASS_FLASH): New macro.
	(AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH): Likewise.
	(avr_address_to_pointer): Check for AVR_TYPE_ADDRESS_CLASS_FLASH.
	(avr_pointer_to_address): Likewise.
	(avr_address_class_type_flags): New function.
	(avr_address_class_type_flags_to_name): Likewise.
	(avr_address_class_name_to_type_flags): Likewise.
	(avr_gdbarch_init): Set address_class_type_flags,
	address_class_type_flags_to_name and
	address_class_name_to_type_flags.

gdb/testsuite/
	* gdb.arch/avr-flash-qualifer.c: New.
	* gdb.arch/avr-flash-qualifer.exp: New.
2014-07-15 17:03:09 +01:00
..
aarch64-atomic-inst.c aarch64: detect atomic sequences like other ll/sc architectures 2014-05-07 09:41:50 -07:00
aarch64-atomic-inst.exp aarch64: detect atomic sequences like other ll/sc architectures 2014-05-07 09:41:50 -07:00
alpha-step.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
alpha-step.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
altivec-abi.c
altivec-abi.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
altivec-regs.c
altivec-regs.exp PowerPC64 little-endian fixes: AltiVec tests 2014-02-04 18:28:24 +01:00
amd64-byte.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-disp-step.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-disp-step.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-dword.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-entry-value-inline.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-entry-value-inline.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-entry-value-inline.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-entry-value-param.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-entry-value-param.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-entry-value-param.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-entry-value.cc Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-entry-value.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-entry-value.s Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-i386-address.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-i386-address.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-invalid-stack-middle.c Remove previous frame if an error occurs when computing frame id during unwind. 2014-05-30 22:36:14 +01:00
amd64-invalid-stack-middle.exp Add a TRY_CATCH to get_prev_frame_always to better manage errors during unwind. 2014-05-30 22:44:36 +01:00
amd64-invalid-stack-middle.S Remove previous frame if an error occurs when computing frame id during unwind. 2014-05-30 22:36:14 +01:00
amd64-invalid-stack-top.c Remove previous frame if an error occurs when computing frame id during unwind. 2014-05-30 22:36:14 +01:00
amd64-invalid-stack-top.exp Add a TRY_CATCH to get_prev_frame_always to better manage errors during unwind. 2014-05-30 22:44:36 +01:00
amd64-prologue-xmm.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-prologue-xmm.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-prologue-xmm.s Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-pseudo.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-stap-optional-prefix.exp testsuite: Use istarget and is_lp64_target for 3 testcases. 2014-06-23 08:24:36 +02:00
amd64-stap-optional-prefix.S Extend recognized types of SDT probe's arguments 2014-05-02 17:50:45 -03:00
amd64-stap-special-operands.exp testsuite: Use istarget and is_lp64_target for 3 testcases. 2014-06-23 08:24:36 +02:00
amd64-stap-three-arg-disp.c Fix for PR tdep/16397: SystemTap SDT probe support for x86 doesn't work with "triplet operands" 2014-02-20 18:49:09 -03:00
amd64-stap-three-arg-disp.S Fix for PR tdep/16397: SystemTap SDT probe support for x86 doesn't work with "triplet operands" 2014-02-20 18:49:09 -03:00
amd64-stap-triplet.c Fix for PR tdep/16397: SystemTap SDT probe support for x86 doesn't work with "triplet operands" 2014-02-20 18:49:09 -03:00
amd64-stap-triplet.S Fix for PR tdep/16397: SystemTap SDT probe support for x86 doesn't work with "triplet operands" 2014-02-20 18:49:09 -03:00
amd64-tailcall-cxx.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-tailcall-cxx1.cc Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-tailcall-cxx1.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-tailcall-cxx2.cc Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-tailcall-cxx2.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-tailcall-noret.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-tailcall-noret.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-tailcall-noret.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-tailcall-ret.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-tailcall-ret.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-tailcall-ret.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
amd64-word.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
arm-bl-branch-dest.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
arm-bl-branch-dest.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
arm-disp-step.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
arm-disp-step.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
avr-flash-qualifier.c Add support for the __flash qualifier on AVR 2014-07-15 17:03:09 +01:00
avr-flash-qualifier.exp Add support for the __flash qualifier on AVR 2014-07-15 17:03:09 +01:00
e500-abi.c
e500-abi.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
e500-prologue.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
e500-prologue.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
e500-regs.c
e500-regs.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
gdb1291.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
gdb1291.s Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
gdb1431.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
gdb1431.s Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
gdb1558.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
gdb1558.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-avx.c Move shared native target specific code to gdb/nat 2014-06-20 14:06:48 +01:00
i386-avx.exp Move shared native target specific code to gdb/nat 2014-06-20 14:06:48 +01:00
i386-avx512.c Move shared native target specific code to gdb/nat 2014-06-20 14:06:48 +01:00
i386-avx512.exp Add AVX512 registers support to GDB and GDBserver. 2014-04-24 16:30:03 +02:00
i386-bp_permanent.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-byte.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-cfi-notcurrent.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-cfi-notcurrent.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-disp-step.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-disp-step.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-dr3-watch.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-dr3-watch.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-float.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-float.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-gnu-cfi-asm.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-gnu-cfi.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-gnu-cfi.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-mpx.c Move shared native target specific code to gdb/nat 2014-06-20 14:06:48 +01:00
i386-mpx.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-permbkpt.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-permbkpt.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-prologue.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-prologue.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-pseudo.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-signal.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-signal.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-size-overlap.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-size-overlap.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-size.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-size.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-sse-stack-align.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-sse-stack-align.exp Fix i386-sse-stack-align.exp regression since GDB_PARALLEL. 2014-02-06 23:14:20 +01:00
i386-sse-stack-align.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-sse.c Move shared native target specific code to gdb/nat 2014-06-20 14:06:48 +01:00
i386-sse.exp Move shared native target specific code to gdb/nat 2014-06-20 14:06:48 +01:00
i386-unwind.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-unwind.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
i386-word.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
ia64-breakpoint-shadow.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
ia64-breakpoint-shadow.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
iwmmxt-regs.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
iwmmxt-regs.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
Makefile.in Add AVX512 registers support to GDB and GDBserver. 2014-04-24 16:30:03 +02:00
mips-octeon-bbit.c
mips-octeon-bbit.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
mips16-thunks-inmain.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
mips16-thunks-main.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
mips16-thunks-sin.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
mips16-thunks-sinfrob.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
mips16-thunks-sinfrob16.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
mips16-thunks-sinmain.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
mips16-thunks-sinmips16.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
mips16-thunks.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
pa-nullify.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
pa-nullify.s
pa64-nullify.s
powerpc-aix-prologue.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
powerpc-aix-prologue.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
powerpc-d128-regs.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
powerpc-d128-regs.exp PowerPC64 little-endian fixes: 128-bit DFP parameters / registers 2014-02-04 18:36:54 +01:00
powerpc-power.exp gdb/testsuite/ 2014-06-02 13:57:27 -03:00
powerpc-power.s gdb/testsuite/ 2014-06-02 13:57:27 -03:00
powerpc-prologue.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
powerpc-prologue.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
ppc-dfp.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
ppc-dfp.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
ppc-fp.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
ppc-fp.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
ppc64-atomic-inst.exp gdb.arch/ppc64-atomic-inst.exp: Improve error handling. 2014-04-01 12:12:59 +11:00
ppc64-atomic-inst.S Fix ppc64 single step over atomic sequence testcase. 2014-04-01 12:12:48 +11:00
s390-multiarch.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
s390-multiarch.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
s390-tdbregs.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
s390-tdbregs.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
sparc-sysstep.c This changeset makes sparc64_linux_step_trap to return 0 when a 2014-01-29 07:15:05 -08:00
sparc-sysstep.exp This changeset makes sparc64_linux_step_trap to return 0 when a 2014-01-29 07:15:05 -08:00
spu-info.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
spu-info.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
spu-ls.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
spu-ls.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
thumb-bx-pc.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
thumb-bx-pc.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
thumb-prologue.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
thumb-prologue.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
thumb-singlestep.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
thumb-singlestep.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
thumb2-it.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
thumb2-it.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
vsx-regs.c
vsx-regs.exp PowerPC64 little-endian fixes: VSX tests and pseudo-regs 2014-02-04 18:31:38 +01:00