[fpc-devel] AVR debug info - bug 0033914
Joost van der Sluis
joost at cnoc.nl
Mon Jul 2 15:47:55 CEST 2018
Op 30-06-18 om 21:51 schreef Christo:
> I'm trying to figure out how to fix bug 33914. This bug causes gdb to read variable addresses
> from flash, not RAM. Looking at the DWARF info, the address of a variable is written as a word,
> while gdb expects a prefixed address ($800000 + address) to indicate a RAM address, so the size
> of the address needs to be larger than 16 bits. In dbgdwarf.pas it appears as if the size of
> addresses are taken from pint/puint in globtype.pas and aitconst_ptr_unaligned in aasmtai.pas,
> all of which are 16 bit sizes for AVR.
> Of course all instances pint/puint types and aitconst_ptr_unaligned constants are appended with
> "_d" as part of this indirection. A patch with this approach is attached to the bug report.
> This appears to work correctly, but I'm not sure this is an elegant way of fixing the problem.
> Any comments or hints on how to fix the issue more elegantly?
Has been a long time ago, but my guess is that in some DWARF-header
there is an offset for the memory-locations. (The unit-info maybe?)
You should have a look at the Dwarf-specs. And maybe have a look at
other platforms, what is generated there.
Regards,
Joost.
More information about the fpc-devel
mailing list