dynamic array's upper bound evaluated as address for AVR target

Sivanupandi, Pitchumani Pitchumani.Sivanupandi@atmel.com
Wed Oct 14 10:15:00 GMT 2015


> -----Original Message-----
> From: Pierre-Marie de Rodat [mailto:derodat@adacore.com]
> Sent: 14 October 2015 13:56
> To: Sivanupandi, Pitchumani; Joel Brobecker
> Cc: gdb@sourceware.org; Andrew Burgess; tom@tromey.com; uweigand@de.ibm.com
> Subject: Re: dynamic array's upper bound evaluated as address for AVR target
> 
> On 10/14/2015 09:54 AM, Sivanupandi, Pitchumani wrote:
> > It is not meant for integer to address conversion, rather transforming
> > the location expression value as target address
> > (value.c:value_as_address) if target has some special handling. In AVR
> > case, to differentiate the memory type (flash, sram, eeprom) we have
> > this mask so that debugger can identify the correct memory type from that
> address.
> 
> Thank you for your answers, and sorry for the new questions, I just try to
> understand both the need and the solution in place for it. ;-)
> 
> If all these memories share the same address space, why don’t location
> expressions (so compiler generated) compute directly masked addresses?
> What addresses does the inferior processes? (like: in registers, etc.) are
> these masked as well?

AVR has different address spaces (Harvard architecture). Compiler
(avr-gcc) generates fictitious addresses to support it.
Also refer:
AVR Background in avr-tdep.c
https://sourceware.org/ml/gdb/2014-10/msg00142.html

Regards,
Pitchumani


More information about the Gdb mailing list