[fpc-devel] AVR systeminfo defaults to dwarf 3
Dimitrios Chr. Ioannidis
d.ioannidis at nephelae.eu
Thu Feb 11 09:34:22 CET 2021
Hi,
Στις 10/2/2021 11:12 μ.μ., ο/η Christo Crause έγραψε:
> On Wed, Feb 10, 2021 at 3:16 PM Dimitrios Chr. Ioannidis via fpc-devel
> <fpc-devel at lists.freepascal.org
> <mailto:fpc-devel at lists.freepascal.org>> wrote:
>
> Hi,
>
> Στις 10/2/2021 2:25 μ.μ., ο/η Christo Crause έγραψε:
>> On Wed, Feb 10, 2021 at 12:47 PM Dimitrios Chr. Ioannidis via
>> fpc-devel <fpc-devel at lists.freepascal.org
>> <mailto:fpc-devel at lists.freepascal.org>> wrote:
>>
>> Hi,
>>
>> I read at compiler/systems/i_embed.pas the AVR systeminfo,
>> is the
>> only one that, has as default "dbg : dbg_dwarf3". The other
>> embed
>> systems that uses dwarf ( ARM, MIPSEL, i8086, m68k,
>> RISCV32/64, XTENSA,
>> Z80 ), all have as default "dbg : dbg_dwarf2".
>>
>> The AVR has problems with dbg_dwarf2 ? If not, could you
>> please
>> change the AVR systeminfo to dwarf2 also for consistency ?
>>
>>
>> That was a fix for compiling controller units with lots of
>> symbols, refer to this discussion thread:
>> https://www.mail-archive.com/fpc-devel@lists.freepascal.org/msg35416.html
>> <https://www.mail-archive.com/fpc-devel@lists.freepascal.org/msg35416.html>
>> Dwarf2 is fine in general, unless the address (I think address in
>> dwarf debug section, the details are a bit hazy in my memory) of
>> symbols exceed 65535. Dwarf3 offers a larger data type for this
>> scenario.
>
> I'm using ppcrossavr with systeminfo default "dbg : dbg_dwarf2"
> with no problems. If I remember correctly, IMHO, fixing the issue
> 33914 ( https://bugs.freepascal.org/view.php?id=33914
> <https://bugs.freepascal.org/view.php?id=33914> ) had the
> collateral effect to fixing also the above.
>
> For test, I just debugged a physical atmega32u2 mcu with Lazarus
> with no problems at all. Also for test, I builded an avr35 subarch
> ppcrossavr and also debugged a physical atmega32u2 mcu with no
> problems.
>
>
> You are probably right, I never checked if the pointer change of
> #33914 also fixed the original issue in the mailing list so the
> default dwarf version for AVR could be changed back to 2. But then
> Florian does have a point, why not make the default for all targets
> dwarf 3?
I really don't know enough to have an opinion on this. As Florian wrote,
Martin can answer this.
But if dwarf 3 is the default for avr, then IMHO, in avr link script
generation are missing the following :
===================================================================
--- t_embed.pas (revision 48516)
+++ t_embed.pas (working copy)
@@ -1074,6 +1074,11 @@
Add(' .debug_str 0 : { *(.debug_str) }');
Add(' .debug_loc 0 : { *(.debug_loc) }');
Add(' .debug_macinfo 0 : { *(.debug_macinfo) }');
+ Add(' /* DWARF 3 */');
+ Add(' .debug_pubtypes 0 : { *(.debug_pubtypes) }');
+ Add(' .debug_ranges 0 : { *(.debug_ranges) }');
+ Add(' /* DWARF Extension. */');
+ Add(' .debug_macro 0 : { *(.debug_macro) }');
Add('}');
end;
{$endif AVR}
regards,
--
Dimitrios Chr. Ioannidis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20210211/f6d2db6e/attachment-0001.htm>
More information about the fpc-devel
mailing list