[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