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@lists.freepascal.org
<mailto:fpc-devel@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@lists.freepascal.org
<mailto:fpc-devel@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
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel