Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-devel / 2022-09

[AVR] Debugging objects

4 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Dimitrios Chr. Ioannidis

Hi,

  it seems that there is another DWARF bug regarding objects in units.

Using MPLAB SNAP, ATBACKEND and gdb ( 8.3 ) session :

-----------------------
Reading symbols from avr_object_debug_test.elf...
(gdb) target remote :2345
Remote debugging using :2345
0x00000000 in _START ()
(gdb) monitor tool snap
(gdb) monitor device atmega328p debugwire
(gdb) load
Loading section .text, size 0x74a lma 0x0
Loading section .data, size 0x5e lma 0x74a
Start address 0x0, load size 1960
Transfer rate: 688 bytes/sec, 980 bytes/write.
(gdb) break main
Breakpoint 1 at 0xa2: file avr_object_debug_test.pas, line 10. (gdb) monitor reset
(gdb) c
Continuing.

Breakpoint 1, $main () at avr_object_debug_test.pas:10 10        TestObj.DoSomething;
(gdb) s
UTESTOBJs_sTTESTOBJ_s__ss_DOSOMETHING () at utestobj.pas:16 16        x := 5;
(gdb) print x
No symbol "x" in current context.
(gdb) s
17        Inc(i);
(gdb) print i
$1 = 7
(gdb) print x
No symbol "x" in current context.
(gdb) s
18        x := i;
(gdb) print x
No symbol "x" in current context.
(gdb) print i
$2 = 7
(gdb)
-----------------------

Compiled with avr cross compiler 3.2.2 and 3.2.3 ( builded 23/9/2022 ) with "-Tembedded -Pavr -MObjFPC -Sai -CirotR -O1 -gw3 -Xg -a -al -Xe -Xm -Sm -WpATMEGA328P -CpAVR5 -godwarfsets -dF_CPU:=16000000 avr_object_debug_test.pas"

-----------------------
program avr_object_debug_test;
uses
   utestobj;
var
   TestObj: TTestObj;
begin
   TestObj.DoSomething;
end.
-----------------------
-----------------------
unit utestobj;
interface
type
   TTestObj = object
     procedure DoSomething;
   end;
implementation
procedure TTestObj.DoSomething;
var
   i, x: SizeInt;
begin
   x := 5;
   Inc(i);
   x := i;
end;
end.
-----------------------

utestobj unit dwarf Info

-----------------------
<0><1061>: Abbrev Number: 1 (DW_TAG_compile_unit)
   <1062>   DW_AT_name        : utestobj.pas    <106f>   DW_AT_producer    : Free Pascal 3.2.3 2022/09/23    <108c>   DW_AT_comp_dir    :
G:/Programming/dimitris/Projects/fpc_avr_bugs/debug_objects/    <10c9>   DW_AT_language    : 9      (ANSI Pascal)    <10ca>   DW_AT_identifier_case: 3   (case_insensitive)    <10cb>   DW_AT_stmt_list   : 0xe3
   <10cf>   DW_AT_low_pc      : 0x6f6
   <10d3>   DW_AT_high_pc     : 0x74a
<1><10d7>: Abbrev Number: 2 (DW_TAG_typedef)
   <10d8>   DW_AT_name        : TTestObj    <10e1>   DW_AT_type        : <0x10e5> <1><10e5>: Abbrev Number: 3 (DW_TAG_structure_type)    <10e6>   DW_AT_name        : TTestObj    <10ef>   DW_AT_byte_size   : 0
<2><10f0>: Abbrev Number: 0
<1><10f1>: Abbrev Number: 4 (DW_TAG_reference_type)    <10f2>   DW_AT_type        : <0x10d7> <1><10f6>: Abbrev Number: 2 (DW_TAG_typedef)
   <10f7>   DW_AT_name        : $vmtdef$TTESTOBJ    <1108>   DW_AT_type        : <0x110c> <1><110c>: Abbrev Number: 3 (DW_TAG_structure_type)    <110d>   DW_AT_name        : $VMTDEF$TTESTOBJ    <111e>   DW_AT_byte_size   : 8
<2><111f>: Abbrev Number: 0
<1><1120>: Abbrev Number: 4 (DW_TAG_reference_type)    <1121>   DW_AT_type        : <0x10f6> <1><1125>: Abbrev Number: 2 (DW_TAG_typedef)
   <1126>   DW_AT_name        : $rttidef$INIT_$UTESTOBJ_$$_TTESTOBJ    <114a>   DW_AT_type        : <0x114e> <1><114e>: Abbrev Number: 3 (DW_TAG_structure_type)    <114f>   DW_AT_name        : $RTTIDEF$INIT_$UTESTOBJ_$$_TTESTOBJ    <1173>   DW_AT_byte_size   : 24
<2><1174>: Abbrev Number: 0
<1><1175>: Abbrev Number: 4 (DW_TAG_reference_type)    <1176>   DW_AT_type        : <0x1125> <1><117a>: Abbrev Number: 2 (DW_TAG_typedef)
   <117b>   DW_AT_name        : $rttidef$RTTI_$UTESTOBJ_$$_TTESTOBJ    <119f>   DW_AT_type        : <0x11a3> <1><11a3>: Abbrev Number: 3 (DW_TAG_structure_type)    <11a4>   DW_AT_name        : $RTTIDEF$RTTI_$UTESTOBJ_$$_TTESTOBJ    <11c8>   DW_AT_byte_size   : 20
<2><11c9>: Abbrev Number: 0
<1><11ca>: Abbrev Number: 4 (DW_TAG_reference_type)    <11cb>   DW_AT_type        : <0x117a> <1><11cf>: Abbrev Number: 0
-----------------------

regards,

Dimitrios Chr. Ioannidis

Reply by email

Dimitrios Chr. Ioannidis
to Dimitrios Chr. Ioannidis

Hi,

Στις 24/9/2022 10:31 π.μ., ο/η Dimitrios Chr. Ioannidis έγραψε:

Hi,    it seems that there is another DWARF bug regarding objects in units.

As I patched my fpc 3.2.2 and 3.2.3 compilers, here is the results when I compile with fpc main rev. 2bf377744ae19bff141878708df2c9beb78b03f8, which are similar .

BTW, the advancedrecords seems that they don't have the same problem .

Using MPLAB SNAP, ATBACKEND and avr gdb ( 8.3 ) on Windows 10 :

-----------------------
Reading symbols from avr_object_debug_test.elf...
(gdb) target remote :2345
Remote debugging using :2345
0x00000000 in ATMEGA328P_ss__FPC_START ()
(gdb) monitor tool snap
(gdb) monitor device atmega328p debugwire
(gdb) load
Loading section .text, size 0x32a lma 0x0
Loading section .data, size 0x40 lma 0x32a
Start address 0x0, load size 874
Transfer rate: 644 bytes/sec, 437 bytes/write.
(gdb) break main
Breakpoint 1 at 0xa2: file avr_object_debug_test.pas, line 11. (gdb) monitor reset
(gdb) c
Continuing.

Breakpoint 1, $main () at avr_object_debug_test.pas:11 11        DoSomething;
(gdb) s
DoSomething () at utestobj.pas:44
44        x := 5;
(gdb) print x
$1 = 1
(gdb) s
45        i := 0;
(gdb) print x
$2 = 5
(gdb) s
46        Inc(i);
(gdb) s
47        x := i;
(gdb) print x
$3 = 5
(gdb) print i
$4 = 1
(gdb) s
48      end;
(gdb) s
$main () at avr_object_debug_test.pas:12
12        TestObj.DoSomething;
(gdb) s
UTESTOBJs_sTTESTOBJ_s__ss_DOSOMETHING () at utestobj.pas:24 24        x := 5;
(gdb) print x
No symbol "x" in current context.
(gdb) s
25        i := 0;
(gdb) print i
$5 = 7
(gdb) s
26        Inc(i);
(gdb) s
27        x := i;
(gdb) print i
$6 = 7
(gdb) print x
No symbol "x" in current context.
(gdb) s
28      end;
(gdb) s
$main () at avr_object_debug_test.pas:13
13        TestRec.DoSomething;
(gdb) s
DoSomething (this=...) at utestobj.pas:34
34        x := 5;
(gdb) print x
$7 = 1
(gdb) s
35        i := 0;
(gdb) print x
$8 = 5
(gdb) s
36        Inc(i);
(gdb) print i
$9 = 0
(gdb) s
37        x := i;
(gdb) print i
$10 = 1
(gdb) print x
$11 = 5
(gdb) s
38      end;
(gdb) print x
$12 = 1
(gdb) s
$main () at avr_object_debug_test.pas:14
14      end.
(gdb) s

Program received signal SIGTRAP, Trace/breakpoint trap. _FPC_haltproc () at avr/avrcommon.inc:18
18              while true do
(gdb)
-----------------------

Compiled with avr cross compiler 3.3.1 ( builded 23/9/2022 ) with "-Tembedded -Pavr -MObjFPC -Sai -CirotR -O1 -gw3 -Xg -a -al -Xe -Xm -Sm -WpATMEGA328P -CpAVR5 -godwarfsets -dF_CPU:=16000000 avr_object_debug_test.pas"

-----------------------
program avr_object_debug_test;
uses
   utestobj;
var
   TestObj: TTestObj;
   TestRec: TTestRec;
begin
   DoSomething;
   TestObj.DoSomething;
   TestRec.DoSomething;
end.
-----------------------
-----------------------
unit utestobj;
{$modeswitch ADVANCEDRECORDS}
interface
type
   TTestObj = object
     procedure DoSomething;
   end;
   TTestRec = record
     procedure DoSomething;
   end;
procedure DoSomething;
implementation
procedure TTestObj.DoSomething;
var
   i, x: SizeInt;
begin
   x := 5;
   i := 0;
   Inc(i);
   x := i;
end;
procedure TTestRec.DoSomething;
var
   i, x: SizeInt;
begin
   x := 5;
   i := 0;
   Inc(i);
   x := i;
end;
procedure DoSomething;
var
   i, x: SizeInt;
begin
   x := 5;
   i := 0;
   Inc(i);
   x := i;
end;
end.
-----------------------

dwarf Information

-----------------------
avr_object_debug_test.elf:     file format elf32-avr

Contents of the .debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0xc3 (32-bit)
   Version:       3
   Abbrev Offset: 0x0
   Pointer Size:  4
 <0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
    <c>   DW_AT_name        : avr_object_debug_test.pas     <26>   DW_AT_producer    : Free Pascal 3.3.1 2022/09/24     <43>   DW_AT_comp_dir    :
G:/Programming/dimitris/Projects/fpc_avr_bugs/debug_objects/     <80>   DW_AT_language    : 9    (ANSI Pascal)     <81>   DW_AT_identifier_case: 3    (case_insensitive)     <82>   DW_AT_stmt_list   : 0x0
    <86>   DW_AT_low_pc      : 0x9e
    <8a>   DW_AT_high_pc     : 0xc0
 <1><8e>: Abbrev Number: 2 (DW_TAG_variable)
    <8f>   DW_AT_name        : TestObj     <97>   DW_AT_location    : 5 byte block: 3 40 1 80 0 (DW_OP_addr: 800140)
    <9d>   DW_AT_type        : <0x118c>  <1><a1>: Abbrev Number: 2 (DW_TAG_variable)
    <a2>   DW_AT_name        : TestRec     <aa>   DW_AT_location    : 5 byte block: 3 41 1 80 0 (DW_OP_addr: 800141)
    <b0>   DW_AT_type        : <0x11ab>  <1><b4>: Abbrev Number: 3 (DW_TAG_subprogram)
    <b5>   DW_AT_name        : $main
    <bb>   DW_AT_prototyped  : 1
    <bc>   DW_AT_external    : 1
    <bd>   DW_AT_low_pc      : 0x9e
    <c1>   DW_AT_high_pc     : 0xbc
 <2><c5>: Abbrev Number: 0
 <1><c6>: Abbrev Number: 0
  Compilation Unit @ offset 0xc7:
   Length:        0xff5 (32-bit)
   Version:       3
   Abbrev Offset: 0x30
   Pointer Size:  4
 <0><d2>: Abbrev Number: 1 (DW_TAG_compile_unit)
    <d3>   DW_AT_name        : avr/atmega328p.pp     <e5>   DW_AT_producer    : Free Pascal 3.3.1 2022/09/24     <102>   DW_AT_comp_dir    :
G:/Programming/dimitris/tools/laz-2.2.2_fpc-3.2.2/fpc/3.3.1/source/rtl/embedded/     <153>   DW_AT_language    : 9    (ANSI Pascal)     <154>   DW_AT_identifier_case: 3    (case_insensitive)     <155>   DW_AT_stmt_list   : 0x5e
    <159>   DW_AT_low_pc      : 0x214
    <15d>   DW_AT_high_pc     : 0x21a
 <1><161>: Abbrev Number: 2 (DW_TAG_variable)
    <162>   DW_AT_name        : UDR0
    <167>   DW_AT_external    : 1
    <168>   DW_AT_location    : 5 byte block: 3 c6 0 80 0 (DW_OP_addr: 8000c6)
    <16e>   DW_AT_type        : <0x1072>  <1><172>: Abbrev Number: 2 (DW_TAG_variable)
    <173>   DW_AT_name        : UCSR0A     <17a>   DW_AT_external    : 1
    <17b>   DW_AT_location    : 5 byte block: 3 c0 0 80 0 (DW_OP_addr: 8000c0)
    <181>   DW_AT_type        : <0x1072>  <1><185>: Abbrev Number: 2 (DW_TAG_variable)
    <186>   DW_AT_name        : UCSR0B     <18d>   DW_AT_external    : 1
    <18e>   DW_AT_location    : 5 byte block: 3 c1 0 80 0 (DW_OP_addr: 8000c1)
    <194>   DW_AT_type        : <0x1072>  <1><198>: Abbrev Number: 2 (DW_TAG_variable)
    <199>   DW_AT_name        : UCSR0C     <1a0>   DW_AT_external    : 1
    <1a1>   DW_AT_location    : 5 byte block: 3 c2 0 80 0 (DW_OP_addr: 8000c2)
    <1a7>   DW_AT_type        : <0x1072>  <1><1ab>: Abbrev Number: 2 (DW_TAG_variable)
    <1ac>   DW_AT_name        : UBRR0
    <1b2>   DW_AT_external    : 1
    <1b3>   DW_AT_location    : 5 byte block: 3 c4 0 80 0 (DW_OP_addr: 8000c4)
    <1b9>   DW_AT_type        : <0x10a8>  <1><1bd>: Abbrev Number: 2 (DW_TAG_variable)
    <1be>   DW_AT_name        : UBRR0L     <1c5>   DW_AT_external    : 1
    <1c6>   DW_AT_location    : 5 byte block: 3 c4 0 80 0 (DW_OP_addr: 8000c4)
    <1cc>   DW_AT_type        : <0x1072>  <1><1d0>: Abbrev Number: 2 (DW_TAG_variable)
    <1d1>   DW_AT_name        : UBRR0H     <1d8>   DW_AT_external    : 1
    <1d9>   DW_AT_location    : 5 byte block: 3 c5 0 80 0 (DW_OP_addr: 8000c5)
    <1df>   DW_AT_type        : <0x1072>  <1><1e3>: Abbrev Number: 2 (DW_TAG_variable)
    <1e4>   DW_AT_name        : TWAMR
    <1ea>   DW_AT_external    : 1
    <1eb>   DW_AT_location    : 5 byte block: 3 bd 0 80 0 (DW_OP_addr: 8000bd)
    <1f1>   DW_AT_type        : <0x1072>  <1><1f5>: Abbrev Number: 2 (DW_TAG_variable)
    <1f6>   DW_AT_name        : TWBR
    <1fb>   DW_AT_external    : 1
    <1fc>   DW_AT_location    : 5 byte block: 3 b8 0 80 0 (DW_OP_addr: 8000b8)
    <202>   DW_AT_type        : <0x1072>  <1><206>: Abbrev Number: 2 (DW_TAG_variable)
    <207>   DW_AT_name        : TWCR
    <20c>   DW_AT_external    : 1
    <20d>   DW_AT_location    : 5 byte block: 3 bc 0 80 0 (DW_OP_addr: 8000bc)
    <213>   DW_AT_type        : <0x1072>  <1><217>: Abbrev Number: 2 (DW_TAG_variable)
    <218>   DW_AT_name        : TWSR
    <21d>   DW_AT_external    : 1
    <21e>   DW_AT_location    : 5 byte block: 3 b9 0 80 0 (DW_OP_addr: 8000b9)
    <224>   DW_AT_type        : <0x1072>  <1><228>: Abbrev Number: 2 (DW_TAG_variable)
    <229>   DW_AT_name        : TWDR
    <22e>   DW_AT_external    : 1
    <22f>   DW_AT_location    : 5 byte block: 3 bb 0 80 0 (DW_OP_addr: 8000bb)
    <235>   DW_AT_type        : <0x1072>  <1><239>: Abbrev Number: 2 (DW_TAG_variable)
    <23a>   DW_AT_name        : TWAR
    <23f>   DW_AT_external    : 1
    <240>   DW_AT_location    : 5 byte block: 3 ba 0 80 0 (DW_OP_addr: 8000ba)
    <246>   DW_AT_type        : <0x1072>  <1><24a>: Abbrev Number: 2 (DW_TAG_variable)
    <24b>   DW_AT_name        : TIMSK1     <252>   DW_AT_external    : 1
    <253>   DW_AT_location    : 5 byte block: 3 6f 0 80 0 (DW_OP_addr: 80006f)
    <259>   DW_AT_type        : <0x1072>  <1><25d>: Abbrev Number: 2 (DW_TAG_variable)
    <25e>   DW_AT_name        : TIFR1
    <264>   DW_AT_external    : 1
    <265>   DW_AT_location    : 5 byte block: 3 36 0 80 0 (DW_OP_addr: 800036)
    <26b>   DW_AT_type        : <0x1072>  <1><26f>: Abbrev Number: 2 (DW_TAG_variable)
    <270>   DW_AT_name        : TCCR1A     <277>   DW_AT_external    : 1
    <278>   DW_AT_location    : 5 byte block: 3 80 0 80 0 (DW_OP_addr: 800080)
    <27e>   DW_AT_type        : <0x1072>  <1><282>: Abbrev Number: 2 (DW_TAG_variable)
    <283>   DW_AT_name        : TCCR1B     <28a>   DW_AT_external    : 1
    <28b>   DW_AT_location    : 5 byte block: 3 81 0 80 0 (DW_OP_addr: 800081)
    <291>   DW_AT_type        : <0x1072>  <1><295>: Abbrev Number: 2 (DW_TAG_variable)
    <296>   DW_AT_name        : TCCR1C     <29d>   DW_AT_external    : 1
    <29e>   DW_AT_location    : 5 byte block: 3 82 0 80 0 (DW_OP_addr: 800082)
    <2a4>   DW_AT_type        : <0x1072>  <1><2a8>: Abbrev Number: 2 (DW_TAG_variable)
    <2a9>   DW_AT_name        : TCNT1
    <2af>   DW_AT_external    : 1
    <2b0>   DW_AT_location    : 5 byte block: 3 84 0 80 0 (DW_OP_addr: 800084)
    <2b6>   DW_AT_type        : <0x10a8>  <1><2ba>: Abbrev Number: 2 (DW_TAG_variable)
    <2bb>   DW_AT_name        : TCNT1L     <2c2>   DW_AT_external    : 1
    <2c3>   DW_AT_location    : 5 byte block: 3 84 0 80 0 (DW_OP_addr: 800084)
    <2c9>   DW_AT_type        : <0x1072>  <1><2cd>: Abbrev Number: 2 (DW_TAG_variable)
    <2ce>   DW_AT_name        : TCNT1H     <2d5>   DW_AT_external    : 1
    <2d6>   DW_AT_location    : 5 byte block: 3 85 0 80 0 (DW_OP_addr: 800085)
    <2dc>   DW_AT_type        : <0x1072>  <1><2e0>: Abbrev Number: 2 (DW_TAG_variable)
    <2e1>   DW_AT_name        : OCR1A
    <2e7>   DW_AT_external    : 1
    <2e8>   DW_AT_location    : 5 byte block: 3 88 0 80 0 (DW_OP_addr: 800088)
    <2ee>   DW_AT_type        : <0x10a8>  <1><2f2>: Abbrev Number: 2 (DW_TAG_variable)
    <2f3>   DW_AT_name        : OCR1AL     <2fa>   DW_AT_external    : 1
    <2fb>   DW_AT_location    : 5 byte block: 3 88 0 80 0 (DW_OP_addr: 800088)
    <301>   DW_AT_type        : <0x1072>  <1><305>: Abbrev Number: 2 (DW_TAG_variable)
    <306>   DW_AT_name        : OCR1AH     <30d>   DW_AT_external    : 1
    <30e>   DW_AT_location    : 5 byte block: 3 89 0 80 0 (DW_OP_addr: 800089)
    <314>   DW_AT_type        : <0x1072>  <1><318>: Abbrev Number: 2 (DW_TAG_variable)
    <319>   DW_AT_name        : OCR1B
    <31f>   DW_AT_external    : 1
    <320>   DW_AT_location    : 5 byte block: 3 8a 0 80 0 (DW_OP_addr: 80008a)
    <326>   DW_AT_type        : <0x10a8>  <1><32a>: Abbrev Number: 2 (DW_TAG_variable)
    <32b>   DW_AT_name        : OCR1BL     <332>   DW_AT_external    : 1
    <333>   DW_AT_location    : 5 byte block: 3 8a 0 80 0 (DW_OP_addr: 80008a)
    <339>   DW_AT_type        : <0x1072>  <1><33d>: Abbrev Number: 2 (DW_TAG_variable)
    <33e>   DW_AT_name        : OCR1BH     <345>   DW_AT_external    : 1
    <346>   DW_AT_location    : 5 byte block: 3 8b 0 80 0 (DW_OP_addr: 80008b)
    <34c>   DW_AT_type        : <0x1072>  <1><350>: Abbrev Number: 2 (DW_TAG_variable)
    <351>   DW_AT_name        : ICR1
    <356>   DW_AT_external    : 1
    <357>   DW_AT_location    : 5 byte block: 3 86 0 80 0 (DW_OP_addr: 800086)
    <35d>   DW_AT_type        : <0x10a8>  <1><361>: Abbrev Number: 2 (DW_TAG_variable)
    <362>   DW_AT_name        : ICR1L
    <368>   DW_AT_external    : 1
    <369>   DW_AT_location    : 5 byte block: 3 86 0 80 0 (DW_OP_addr: 800086)
    <36f>   DW_AT_type        : <0x1072>  <1><373>: Abbrev Number: 2 (DW_TAG_variable)
    <374>   DW_AT_name        : ICR1H
    <37a>   DW_AT_external    : 1
    <37b>   DW_AT_location    : 5 byte block: 3 87 0 80 0 (DW_OP_addr: 800087)
    <381>   DW_AT_type        : <0x1072>  <1><385>: Abbrev Number: 2 (DW_TAG_variable)
    <386>   DW_AT_name        : GTCCR
    <38c>   DW_AT_external    : 1
    <38d>   DW_AT_location    : 5 byte block: 3 43 0 80 0 (DW_OP_addr: 800043)
    <393>   DW_AT_type        : <0x1072>  <1><397>: Abbrev Number: 2 (DW_TAG_variable)
    <398>   DW_AT_name        : TIMSK2     <39f>   DW_AT_external    : 1
    <3a0>   DW_AT_location    : 5 byte block: 3 70 0 80 0 (DW_OP_addr: 800070)
    <3a6>   DW_AT_type        : <0x1072>  <1><3aa>: Abbrev Number: 2 (DW_TAG_variable)
    <3ab>   DW_AT_name        : TIFR2
    <3b1>   DW_AT_external    : 1
    <3b2>   DW_AT_location    : 5 byte block: 3 37 0 80 0 (DW_OP_addr: 800037)
    <3b8>   DW_AT_type        : <0x1072>  <1><3bc>: Abbrev Number: 2 (DW_TAG_variable)
    <3bd>   DW_AT_name        : TCCR2A     <3c4>   DW_AT_external    : 1
    <3c5>   DW_AT_location    : 5 byte block: 3 b0 0 80 0 (DW_OP_addr: 8000b0)
    <3cb>   DW_AT_type        : <0x1072>  <1><3cf>: Abbrev Number: 2 (DW_TAG_variable)
    <3d0>   DW_AT_name        : TCCR2B     <3d7>   DW_AT_external    : 1
    <3d8>   DW_AT_location    : 5 byte block: 3 b1 0 80 0 (DW_OP_addr: 8000b1)
    <3de>   DW_AT_type        : <0x1072>  <1><3e2>: Abbrev Number: 2 (DW_TAG_variable)
    <3e3>   DW_AT_name        : TCNT2
    <3e9>   DW_AT_external    : 1
    <3ea>   DW_AT_location    : 5 byte block: 3 b2 0 80 0 (DW_OP_addr: 8000b2)
    <3f0>   DW_AT_type        : <0x1072>  <1><3f4>: Abbrev Number: 2 (DW_TAG_variable)
    <3f5>   DW_AT_name        : OCR2B
    <3fb>   DW_AT_external    : 1
    <3fc>   DW_AT_location    : 5 byte block: 3 b4 0 80 0 (DW_OP_addr: 8000b4)
    <402>   DW_AT_type        : <0x1072>  <1><406>: Abbrev Number: 2 (DW_TAG_variable)
    <407>   DW_AT_name        : OCR2A
    <40d>   DW_AT_external    : 1
    <40e>   DW_AT_location    : 5 byte block: 3 b3 0 80 0 (DW_OP_addr: 8000b3)
    <414>   DW_AT_type        : <0x1072>  <1><418>: Abbrev Number: 2 (DW_TAG_variable)
    <419>   DW_AT_name        : ASSR
    <41e>   DW_AT_external    : 1
    <41f>   DW_AT_location    : 5 byte block: 3 b6 0 80 0 (DW_OP_addr: 8000b6)
    <425>   DW_AT_type        : <0x1072>  <1><429>: Abbrev Number: 2 (DW_TAG_variable)
    <42a>   DW_AT_name        : ADMUX
    <430>   DW_AT_external    : 1
    <431>   DW_AT_location    : 5 byte block: 3 7c 0 80 0 (DW_OP_addr: 80007c)
    <437>   DW_AT_type        : <0x1072>  <1><43b>: Abbrev Number: 2 (DW_TAG_variable)
    <43c>   DW_AT_name        : ADC
    <440>   DW_AT_external    : 1
    <441>   DW_AT_location    : 5 byte block: 3 78 0 80 0 (DW_OP_addr: 800078)
    <447>   DW_AT_type        : <0x10a8>  <1><44b>: Abbrev Number: 2 (DW_TAG_variable)
    <44c>   DW_AT_name        : ADCL
    <451>   DW_AT_external    : 1
    <452>   DW_AT_location    : 5 byte block: 3 78 0 80 0 (DW_OP_addr: 800078)
    <458>   DW_AT_type        : <0x1072>  <1><45c>: Abbrev Number: 2 (DW_TAG_variable)
    <45d>   DW_AT_name        : ADCH
    <462>   DW_AT_external    : 1
    <463>   DW_AT_location    : 5 byte block: 3 79 0 80 0 (DW_OP_addr: 800079)
    <469>   DW_AT_type        : <0x1072>  <1><46d>: Abbrev Number: 2 (DW_TAG_variable)
    <46e>   DW_AT_name        : ADCSRA     <475>   DW_AT_external    : 1
    <476>   DW_AT_location    : 5 byte block: 3 7a 0 80 0 (DW_OP_addr: 80007a)
    <47c>   DW_AT_type        : <0x1072>  <1><480>: Abbrev Number: 2 (DW_TAG_variable)
    <481>   DW_AT_name        : ADCSRB     <488>   DW_AT_external    : 1
    <489>   DW_AT_location    : 5 byte block: 3 7b 0 80 0 (DW_OP_addr: 80007b)
    <48f>   DW_AT_type        : <0x1072>  <1><493>: Abbrev Number: 2 (DW_TAG_variable)
    <494>   DW_AT_name        : DIDR0
    <49a>   DW_AT_external    : 1
    <49b>   DW_AT_location    : 5 byte block: 3 7e 0 80 0 (DW_OP_addr: 80007e)
    <4a1>   DW_AT_type        : <0x1072>  <1><4a5>: Abbrev Number: 2 (DW_TAG_variable)
    <4a6>   DW_AT_name        : ACSR
    <4ab>   DW_AT_external    : 1
    <4ac>   DW_AT_location    : 5 byte block: 3 50 0 80 0 (DW_OP_addr: 800050)
    <4b2>   DW_AT_type        : <0x1072>  <1><4b6>: Abbrev Number: 2 (DW_TAG_variable)
    <4b7>   DW_AT_name        : DIDR1
    <4bd>   DW_AT_external    : 1
    <4be>   DW_AT_location    : 5 byte block: 3 7f 0 80 0 (DW_OP_addr: 80007f)
    <4c4>   DW_AT_type        : <0x1072>  <1><4c8>: Abbrev Number: 2 (DW_TAG_variable)
    <4c9>   DW_AT_name        : PORTB
    <4cf>   DW_AT_external    : 1
    <4d0>   DW_AT_location    : 5 byte block: 3 25 0 80 0 (DW_OP_addr: 800025)
    <4d6>   DW_AT_type        : <0x1072>  <1><4da>: Abbrev Number: 2 (DW_TAG_variable)
    <4db>   DW_AT_name        : DDRB
    <4e0>   DW_AT_external    : 1
    <4e1>   DW_AT_location    : 5 byte block: 3 24 0 80 0 (DW_OP_addr: 800024)
    <4e7>   DW_AT_type        : <0x1072>  <1><4eb>: Abbrev Number: 2 (DW_TAG_variable)
    <4ec>   DW_AT_name        : PINB
    <4f1>   DW_AT_external    : 1
    <4f2>   DW_AT_location    : 5 byte block: 3 23 0 80 0 (DW_OP_addr: 800023)
    <4f8>   DW_AT_type        : <0x1072>  <1><4fc>: Abbrev Number: 2 (DW_TAG_variable)
    <4fd>   DW_AT_name        : PORTC
    <503>   DW_AT_external    : 1
    <504>   DW_AT_location    : 5 byte block: 3 28 0 80 0 (DW_OP_addr: 800028)
    <50a>   DW_AT_type        : <0x1072>  <1><50e>: Abbrev Number: 2 (DW_TAG_variable)
    <50f>   DW_AT_name        : DDRC
    <514>   DW_AT_external    : 1
    <515>   DW_AT_location    : 5 byte block: 3 27 0 80 0 (DW_OP_addr: 800027)
    <51b>   DW_AT_type        : <0x1072>  <1><51f>: Abbrev Number: 2 (DW_TAG_variable)
    <520>   DW_AT_name        : PINC
    <525>   DW_AT_external    : 1
    <526>   DW_AT_location    : 5 byte block: 3 26 0 80 0 (DW_OP_addr: 800026)
    <52c>   DW_AT_type        : <0x1072>  <1><530>: Abbrev Number: 2 (DW_TAG_variable)
    <531>   DW_AT_name        : PORTD
    <537>   DW_AT_external    : 1
    <538>   DW_AT_location    : 5 byte block: 3 2b 0 80 0 (DW_OP_addr: 80002b)
    <53e>   DW_AT_type        : <0x1072>  <1><542>: Abbrev Number: 2 (DW_TAG_variable)
    <543>   DW_AT_name        : DDRD
    <548>   DW_AT_external    : 1
    <549>   DW_AT_location    : 5 byte block: 3 2a 0 80 0 (DW_OP_addr: 80002a)
    <54f>   DW_AT_type        : <0x1072>  <1><553>: Abbrev Number: 2 (DW_TAG_variable)
    <554>   DW_AT_name        : PIND
    <559>   DW_AT_external    : 1
    <55a>   DW_AT_location    : 5 byte block: 3 29 0 80 0 (DW_OP_addr: 800029)
    <560>   DW_AT_type        : <0x1072>  <1><564>: Abbrev Number: 2 (DW_TAG_variable)
    <565>   DW_AT_name        : OCR0B
    <56b>   DW_AT_external    : 1
    <56c>   DW_AT_location    : 5 byte block: 3 48 0 80 0 (DW_OP_addr: 800048)
    <572>   DW_AT_type        : <0x1072>  <1><576>: Abbrev Number: 2 (DW_TAG_variable)
    <577>   DW_AT_name        : OCR0A
    <57d>   DW_AT_external    : 1
    <57e>   DW_AT_location    : 5 byte block: 3 47 0 80 0 (DW_OP_addr: 800047)
    <584>   DW_AT_type        : <0x1072>  <1><588>: Abbrev Number: 2 (DW_TAG_variable)
    <589>   DW_AT_name        : TCNT0
    <58f>   DW_AT_external    : 1
    <590>   DW_AT_location    : 5 byte block: 3 46 0 80 0 (DW_OP_addr: 800046)
    <596>   DW_AT_type        : <0x1072>  <1><59a>: Abbrev Number: 2 (DW_TAG_variable)
    <59b>   DW_AT_name        : TCCR0B     <5a2>   DW_AT_external    : 1
    <5a3>   DW_AT_location    : 5 byte block: 3 45 0 80 0 (DW_OP_addr: 800045)
    <5a9>   DW_AT_type        : <0x1072>  <1><5ad>: Abbrev Number: 2 (DW_TAG_variable)
    <5ae>   DW_AT_name        : TCCR0A     <5b5>   DW_AT_external    : 1
    <5b6>   DW_AT_location    : 5 byte block: 3 44 0 80 0 (DW_OP_addr: 800044)
    <5bc>   DW_AT_type        : <0x1072>  <1><5c0>: Abbrev Number: 2 (DW_TAG_variable)
    <5c1>   DW_AT_name        : TIMSK0     <5c8>   DW_AT_external    : 1
    <5c9>   DW_AT_location    : 5 byte block: 3 6e 0 80 0 (DW_OP_addr: 80006e)
    <5cf>   DW_AT_type        : <0x1072>  <1><5d3>: Abbrev Number: 2 (DW_TAG_variable)
    <5d4>   DW_AT_name        : TIFR0
    <5da>   DW_AT_external    : 1
    <5db>   DW_AT_location    : 5 byte block: 3 35 0 80 0 (DW_OP_addr: 800035)
    <5e1>   DW_AT_type        : <0x1072>  <1><5e5>: Abbrev Number: 2 (DW_TAG_variable)
    <5e6>   DW_AT_name        : EICRA
    <5ec>   DW_AT_external    : 1
    <5ed>   DW_AT_location    : 5 byte block: 3 69 0 80 0 (DW_OP_addr: 800069)
    <5f3>   DW_AT_type        : <0x1072>  <1><5f7>: Abbrev Number: 2 (DW_TAG_variable)
    <5f8>   DW_AT_name        : EIMSK
    <5fe>   DW_AT_external    : 1
    <5ff>   DW_AT_location    : 5 byte block: 3 3d 0 80 0 (DW_OP_addr: 80003d)
    <605>   DW_AT_type        : <0x1072>  <1><609>: Abbrev Number: 2 (DW_TAG_variable)
    <60a>   DW_AT_name        : EIFR
    <60f>   DW_AT_external    : 1
    <610>   DW_AT_location    : 5 byte block: 3 3c 0 80 0 (DW_OP_addr: 80003c)
    <616>   DW_AT_type        : <0x1072>  <1><61a>: Abbrev Number: 2 (DW_TAG_variable)
    <61b>   DW_AT_name        : PCICR
    <621>   DW_AT_external    : 1
    <622>   DW_AT_location    : 5 byte block: 3 68 0 80 0 (DW_OP_addr: 800068)
    <628>   DW_AT_type        : <0x1072>  <1><62c>: Abbrev Number: 2 (DW_TAG_variable)
    <62d>   DW_AT_name        : PCMSK2     <634>   DW_AT_external    : 1
    <635>   DW_AT_location    : 5 byte block: 3 6d 0 80 0 (DW_OP_addr: 80006d)
    <63b>   DW_AT_type        : <0x1072>  <1><63f>: Abbrev Number: 2 (DW_TAG_variable)
    <640>   DW_AT_name        : PCMSK1     <647>   DW_AT_external    : 1
    <648>   DW_AT_location    : 5 byte block: 3 6c 0 80 0 (DW_OP_addr: 80006c)
    <64e>   DW_AT_type        : <0x1072>  <1><652>: Abbrev Number: 2 (DW_TAG_variable)
    <653>   DW_AT_name        : PCMSK0     <65a>   DW_AT_external    : 1
    <65b>   DW_AT_location    : 5 byte block: 3 6b 0 80 0 (DW_OP_addr: 80006b)
    <661>   DW_AT_type        : <0x1072>  <1><665>: Abbrev Number: 2 (DW_TAG_variable)
    <666>   DW_AT_name        : PCIFR
    <66c>   DW_AT_external    : 1
    <66d>   DW_AT_location    : 5 byte block: 3 3b 0 80 0 (DW_OP_addr: 80003b)
    <673>   DW_AT_type        : <0x1072>  <1><677>: Abbrev Number: 2 (DW_TAG_variable)
    <678>   DW_AT_name        : SPDR
    <67d>   DW_AT_external    : 1
    <67e>   DW_AT_location    : 5 byte block: 3 4e 0 80 0 (DW_OP_addr: 80004e)
    <684>   DW_AT_type        : <0x1072>  <1><688>: Abbrev Number: 2 (DW_TAG_variable)
    <689>   DW_AT_name        : SPSR
    <68e>   DW_AT_external    : 1
    <68f>   DW_AT_location    : 5 byte block: 3 4d 0 80 0 (DW_OP_addr: 80004d)
    <695>   DW_AT_type        : <0x1072>  <1><699>: Abbrev Number: 2 (DW_TAG_variable)
    <69a>   DW_AT_name        : SPCR
    <69f>   DW_AT_external    : 1
    <6a0>   DW_AT_location    : 5 byte block: 3 4c 0 80 0 (DW_OP_addr: 80004c)
    <6a6>   DW_AT_type        : <0x1072>  <1><6aa>: Abbrev Number: 2 (DW_TAG_variable)
    <6ab>   DW_AT_name        : WDTCSR     <6b2>   DW_AT_external    : 1
    <6b3>   DW_AT_location    : 5 byte block: 3 60 0 80 0 (DW_OP_addr: 800060)
    <6b9>   DW_AT_type        : <0x1072>  <1><6bd>: Abbrev Number: 2 (DW_TAG_variable)
    <6be>   DW_AT_name        : PRR
    <6c2>   DW_AT_external    : 1
    <6c3>   DW_AT_location    : 5 byte block: 3 64 0 80 0 (DW_OP_addr: 800064)
    <6c9>   DW_AT_type        : <0x1072>  <1><6cd>: Abbrev Number: 2 (DW_TAG_variable)
    <6ce>   DW_AT_name        : OSCCAL     <6d5>   DW_AT_external    : 1
    <6d6>   DW_AT_location    : 5 byte block: 3 66 0 80 0 (DW_OP_addr: 800066)
    <6dc>   DW_AT_type        : <0x1072>  <1><6e0>: Abbrev Number: 2 (DW_TAG_variable)
    <6e1>   DW_AT_name        : CLKPR
    <6e7>   DW_AT_external    : 1
    <6e8>   DW_AT_location    : 5 byte block: 3 61 0 80 0 (DW_OP_addr: 800061)
    <6ee>   DW_AT_type        : <0x1072>  <1><6f2>: Abbrev Number: 2 (DW_TAG_variable)
    <6f3>   DW_AT_name        : SREG
    <6f8>   DW_AT_external    : 1
    <6f9>   DW_AT_location    : 5 byte block: 3 5f 0 80 0 (DW_OP_addr: 80005f)
    <6ff>   DW_AT_type        : <0x1072>  <1><703>: Abbrev Number: 2 (DW_TAG_variable)
    <704>   DW_AT_name        : SP
    <707>   DW_AT_external    : 1
    <708>   DW_AT_location    : 5 byte block: 3 5d 0 80 0 (DW_OP_addr: 80005d)
    <70e>   DW_AT_type        : <0x10a8>  <1><712>: Abbrev Number: 2 (DW_TAG_variable)
    <713>   DW_AT_name        : SPL
    <717>   DW_AT_external    : 1
    <718>   DW_AT_location    : 5 byte block: 3 5d 0 80 0 (DW_OP_addr: 80005d)
    <71e>   DW_AT_type        : <0x1072>  <1><722>: Abbrev Number: 2 (DW_TAG_variable)
    <723>   DW_AT_name        : SPH
    <727>   DW_AT_external    : 1
    <728>   DW_AT_location    : 5 byte block: 3 5e 0 80 0 (DW_OP_addr: 80005e)
    <72e>   DW_AT_type        : <0x1072>  <1><732>: Abbrev Number: 2 (DW_TAG_variable)
    <733>   DW_AT_name        : SPMCSR     <73a>   DW_AT_external    : 1
    <73b>   DW_AT_location    : 5 byte block: 3 57 0 80 0 (DW_OP_addr: 800057)
    <741>   DW_AT_type        : <0x1072>  <1><745>: Abbrev Number: 2 (DW_TAG_variable)
    <746>   DW_AT_name        : MCUCR
    <74c>   DW_AT_external    : 1
    <74d>   DW_AT_location    : 5 byte block: 3 55 0 80 0 (DW_OP_addr: 800055)
    <753>   DW_AT_type        : <0x1072>  <1><757>: Abbrev Number: 2 (DW_TAG_variable)
    <758>   DW_AT_name        : MCUSR
    <75e>   DW_AT_external    : 1
    <75f>   DW_AT_location    : 5 byte block: 3 54 0 80 0 (DW_OP_addr: 800054)
    <765>   DW_AT_type        : <0x1072>  <1><769>: Abbrev Number: 2 (DW_TAG_variable)
    <76a>   DW_AT_name        : SMCR
    <76f>   DW_AT_external    : 1
    <770>   DW_AT_location    : 5 byte block: 3 53 0 80 0 (DW_OP_addr: 800053)
    <776>   DW_AT_type        : <0x1072>  <1><77a>: Abbrev Number: 2 (DW_TAG_variable)
    <77b>   DW_AT_name        : GPIOR2     <782>   DW_AT_external    : 1
    <783>   DW_AT_location    : 5 byte block: 3 4b 0 80 0 (DW_OP_addr: 80004b)
    <789>   DW_AT_type        : <0x1072>  <1><78d>: Abbrev Number: 2 (DW_TAG_variable)
    <78e>   DW_AT_name        : GPIOR1     <795>   DW_AT_external    : 1
    <796>   DW_AT_location    : 5 byte block: 3 4a 0 80 0 (DW_OP_addr: 80004a)
    <79c>   DW_AT_type        : <0x1072>  <1><7a0>: Abbrev Number: 2 (DW_TAG_variable)
    <7a1>   DW_AT_name        : GPIOR0     <7a8>   DW_AT_external    : 1
    <7a9>   DW_AT_location    : 5 byte block: 3 3e 0 80 0 (DW_OP_addr: 80003e)
    <7af>   DW_AT_type        : <0x1072>  <1><7b3>: Abbrev Number: 2 (DW_TAG_variable)
    <7b4>   DW_AT_name        : EEAR
    <7b9>   DW_AT_external    : 1
    <7ba>   DW_AT_location    : 5 byte block: 3 41 0 80 0 (DW_OP_addr: 800041)
    <7c0>   DW_AT_type        : <0x10a8>  <1><7c4>: Abbrev Number: 2 (DW_TAG_variable)
    <7c5>   DW_AT_name        : EEARL
    <7cb>   DW_AT_external    : 1
    <7cc>   DW_AT_location    : 5 byte block: 3 41 0 80 0 (DW_OP_addr: 800041)
    <7d2>   DW_AT_type        : <0x1072>  <1><7d6>: Abbrev Number: 2 (DW_TAG_variable)
    <7d7>   DW_AT_name        : EEARH
    <7dd>   DW_AT_external    : 1
    <7de>   DW_AT_location    : 5 byte block: 3 42 0 80 0 (DW_OP_addr: 800042)
    <7e4>   DW_AT_type        : <0x1072>  <1><7e8>: Abbrev Number: 2 (DW_TAG_variable)
    <7e9>   DW_AT_name        : EEDR
    <7ee>   DW_AT_external    : 1
    <7ef>   DW_AT_location    : 5 byte block: 3 40 0 80 0 (DW_OP_addr: 800040)
    <7f5>   DW_AT_type        : <0x1072>  <1><7f9>: Abbrev Number: 2 (DW_TAG_variable)
    <7fa>   DW_AT_name        : EECR
    <7ff>   DW_AT_external    : 1
    <800>   DW_AT_location    : 5 byte block: 3 3f 0 80 0 (DW_OP_addr: 80003f)
    <806>   DW_AT_type        : <0x1072>  <1><80a>: Abbrev Number: 3 (DW_TAG_variable)
    <80b>   DW_AT_name        : RXC0
    <810>   DW_AT_type        : <0x1089>     <814>   DW_AT_const_value : 7
 <1><815>: Abbrev Number: 3 (DW_TAG_variable)
    <816>   DW_AT_name        : TXC0
    <81b>   DW_AT_type        : <0x1089>     <81f>   DW_AT_const_value : 6
 <1><820>: Abbrev Number: 3 (DW_TAG_variable)
    <821>   DW_AT_name        : UDRE0
    <827>   DW_AT_type        : <0x1089>     <82b>   DW_AT_const_value : 5
 <1><82c>: Abbrev Number: 3 (DW_TAG_variable)
    <82d>   DW_AT_name        : FE0
    <831>   DW_AT_type        : <0x1089>     <835>   DW_AT_const_value : 4
 <1><836>: Abbrev Number: 3 (DW_TAG_variable)
    <837>   DW_AT_name        : DOR0
    <83c>   DW_AT_type        : <0x1089>     <840>   DW_AT_const_value : 3
 <1><841>: Abbrev Number: 3 (DW_TAG_variable)
    <842>   DW_AT_name        : UPE0
    <847>   DW_AT_type        : <0x1089>     <84b>   DW_AT_const_value : 2
 <1><84c>: Abbrev Number: 3 (DW_TAG_variable)
    <84d>   DW_AT_name        : U2X0
    <852>   DW_AT_type        : <0x1089>     <856>   DW_AT_const_value : 1
 <1><857>: Abbrev Number: 3 (DW_TAG_variable)
    <858>   DW_AT_name        : MPCM0
    <85e>   DW_AT_type        : <0x1089>     <862>   DW_AT_const_value : 0
 <1><863>: Abbrev Number: 3 (DW_TAG_variable)
    <864>   DW_AT_name        : RXCIE0     <86b>   DW_AT_type        : <0x1089>     <86f>   DW_AT_const_value : 7
 <1><870>: Abbrev Number: 3 (DW_TAG_variable)
    <871>   DW_AT_name        : TXCIE0     <878>   DW_AT_type        : <0x1089>     <87c>   DW_AT_const_value : 6
 <1><87d>: Abbrev Number: 3 (DW_TAG_variable)
    <87e>   DW_AT_name        : UDRIE0     <885>   DW_AT_type        : <0x1089>     <889>   DW_AT_const_value : 5
 <1><88a>: Abbrev Number: 3 (DW_TAG_variable)
    <88b>   DW_AT_name        : RXEN0
    <891>   DW_AT_type        : <0x1089>     <895>   DW_AT_const_value : 4
 <1><896>: Abbrev Number: 3 (DW_TAG_variable)
    <897>   DW_AT_name        : TXEN0
    <89d>   DW_AT_type        : <0x1089>     <8a1>   DW_AT_const_value : 3
 <1><8a2>: Abbrev Number: 3 (DW_TAG_variable)
    <8a3>   DW_AT_name        : UCSZ02     <8aa>   DW_AT_type        : <0x1089>     <8ae>   DW_AT_const_value : 2
 <1><8af>: Abbrev Number: 3 (DW_TAG_variable)
    <8b0>   DW_AT_name        : RXB80
    <8b6>   DW_AT_type        : <0x1089>     <8ba>   DW_AT_const_value : 1
 <1><8bb>: Abbrev Number: 3 (DW_TAG_variable)
    <8bc>   DW_AT_name        : TXB80
    <8c2>   DW_AT_type        : <0x1089>     <8c6>   DW_AT_const_value : 0
 <1><8c7>: Abbrev Number: 3 (DW_TAG_variable)
    <8c8>   DW_AT_name        : UMSEL0     <8cf>   DW_AT_type        : <0x1089>     <8d3>   DW_AT_const_value : 6
 <1><8d4>: Abbrev Number: 3 (DW_TAG_variable)
    <8d5>   DW_AT_name        : UPM0
    <8da>   DW_AT_type        : <0x1089>     <8de>   DW_AT_const_value : 4
 <1><8df>: Abbrev Number: 3 (DW_TAG_variable)
    <8e0>   DW_AT_name        : USBS0
    <8e6>   DW_AT_type        : <0x1089>     <8ea>   DW_AT_const_value : 3
 <1><8eb>: Abbrev Number: 3 (DW_TAG_variable)
    <8ec>   DW_AT_name        : UCSZ0
    <8f2>   DW_AT_type        : <0x1089>     <8f6>   DW_AT_const_value : 1
 <1><8f7>: Abbrev Number: 3 (DW_TAG_variable)
    <8f8>   DW_AT_name        : UCPOL0     <8ff>   DW_AT_type        : <0x1089>     <903>   DW_AT_const_value : 0
 <1><904>: Abbrev Number: 3 (DW_TAG_variable)
    <905>   DW_AT_name        : TWAM
    <90a>   DW_AT_type        : <0x1089>     <90e>   DW_AT_const_value : 1
 <1><90f>: Abbrev Number: 3 (DW_TAG_variable)
    <910>   DW_AT_name        : TWINT
    <916>   DW_AT_type        : <0x1089>     <91a>   DW_AT_const_value : 7
 <1><91b>: Abbrev Number: 3 (DW_TAG_variable)
    <91c>   DW_AT_name        : TWEA
    <921>   DW_AT_type        : <0x1089>     <925>   DW_AT_const_value : 6
 <1><926>: Abbrev Number: 3 (DW_TAG_variable)
    <927>   DW_AT_name        : TWSTA
    <92d>   DW_AT_type        : <0x1089>     <931>   DW_AT_const_value : 5
 <1><932>: Abbrev Number: 3 (DW_TAG_variable)
    <933>   DW_AT_name        : TWSTO
    <939>   DW_AT_type        : <0x1089>     <93d>   DW_AT_const_value : 4
 <1><93e>: Abbrev Number: 3 (DW_TAG_variable)
    <93f>   DW_AT_name        : TWWC
    <944>   DW_AT_type        : <0x1089>     <948>   DW_AT_const_value : 3
 <1><949>: Abbrev Number: 3 (DW_TAG_variable)
    <94a>   DW_AT_name        : TWEN
    <94f>   DW_AT_type        : <0x1089>     <953>   DW_AT_const_value : 2
 <1><954>: Abbrev Number: 3 (DW_TAG_variable)
    <955>   DW_AT_name        : TWIE
    <95a>   DW_AT_type        : <0x1089>     <95e>   DW_AT_const_value : 0
 <1><95f>: Abbrev Number: 3 (DW_TAG_variable)
    <960>   DW_AT_name        : TWS
    <964>   DW_AT_type        : <0x1089>     <968>   DW_AT_const_value : 3
 <1><969>: Abbrev Number: 3 (DW_TAG_variable)
    <96a>   DW_AT_name        : TWPS
    <96f>   DW_AT_type        : <0x1089>     <973>   DW_AT_const_value : 0
 <1><974>: Abbrev Number: 3 (DW_TAG_variable)
    <975>   DW_AT_name        : TWA
    <979>   DW_AT_type        : <0x1089>     <97d>   DW_AT_const_value : 1
 <1><97e>: Abbrev Number: 3 (DW_TAG_variable)
    <97f>   DW_AT_name        : TWGCE
    <985>   DW_AT_type        : <0x1089>     <989>   DW_AT_const_value : 0
 <1><98a>: Abbrev Number: 3 (DW_TAG_variable)
    <98b>   DW_AT_name        : ICIE1
    <991>   DW_AT_type        : <0x1089>     <995>   DW_AT_const_value : 5
 <1><996>: Abbrev Number: 3 (DW_TAG_variable)
    <997>   DW_AT_name        : OCIE1B     <99e>   DW_AT_type        : <0x1089>     <9a2>   DW_AT_const_value : 2
 <1><9a3>: Abbrev Number: 3 (DW_TAG_variable)
    <9a4>   DW_AT_name        : OCIE1A     <9ab>   DW_AT_type        : <0x1089>     <9af>   DW_AT_const_value : 1
 <1><9b0>: Abbrev Number: 3 (DW_TAG_variable)
    <9b1>   DW_AT_name        : TOIE1
    <9b7>   DW_AT_type        : <0x1089>     <9bb>   DW_AT_const_value : 0
 <1><9bc>: Abbrev Number: 3 (DW_TAG_variable)
    <9bd>   DW_AT_name        : ICF1
    <9c2>   DW_AT_type        : <0x1089>     <9c6>   DW_AT_const_value : 5
 <1><9c7>: Abbrev Number: 3 (DW_TAG_variable)
    <9c8>   DW_AT_name        : OCF1B
    <9ce>   DW_AT_type        : <0x1089>     <9d2>   DW_AT_const_value : 2
 <1><9d3>: Abbrev Number: 3 (DW_TAG_variable)
    <9d4>   DW_AT_name        : OCF1A
    <9da>   DW_AT_type        : <0x1089>     <9de>   DW_AT_const_value : 1
 <1><9df>: Abbrev Number: 3 (DW_TAG_variable)
    <9e0>   DW_AT_name        : TOV1
    <9e5>   DW_AT_type        : <0x1089>     <9e9>   DW_AT_const_value : 0
 <1><9ea>: Abbrev Number: 3 (DW_TAG_variable)
    <9eb>   DW_AT_name        : COM1A
    <9f1>   DW_AT_type        : <0x1089>     <9f5>   DW_AT_const_value : 6
 <1><9f6>: Abbrev Number: 3 (DW_TAG_variable)
    <9f7>   DW_AT_name        : COM1B
    <9fd>   DW_AT_type        : <0x1089>     <a01>   DW_AT_const_value : 4
 <1><a02>: Abbrev Number: 3 (DW_TAG_variable)
    <a03>   DW_AT_name        : WGM1
    <a08>   DW_AT_type        : <0x1089>     <a0c>   DW_AT_const_value : 0
 <1><a0d>: Abbrev Number: 3 (DW_TAG_variable)
    <a0e>   DW_AT_name        : ICNC1
    <a14>   DW_AT_type        : <0x1089>     <a18>   DW_AT_const_value : 7
 <1><a19>: Abbrev Number: 3 (DW_TAG_variable)
    <a1a>   DW_AT_name        : ICES1
    <a20>   DW_AT_type        : <0x1089>     <a24>   DW_AT_const_value : 6
 <1><a25>: Abbrev Number: 3 (DW_TAG_variable)
    <a26>   DW_AT_name        : CS1
    <a2a>   DW_AT_type        : <0x1089>     <a2e>   DW_AT_const_value : 0
 <1><a2f>: Abbrev Number: 3 (DW_TAG_variable)
    <a30>   DW_AT_name        : FOC1A
    <a36>   DW_AT_type        : <0x1089>     <a3a>   DW_AT_const_value : 7
 <1><a3b>: Abbrev Number: 3 (DW_TAG_variable)
    <a3c>   DW_AT_name        : FOC1B
    <a42>   DW_AT_type        : <0x1089>     <a46>   DW_AT_const_value : 6
 <1><a47>: Abbrev Number: 3 (DW_TAG_variable)
    <a48>   DW_AT_name        : TSM
    <a4c>   DW_AT_type        : <0x1089>     <a50>   DW_AT_const_value : 7
 <1><a51>: Abbrev Number: 3 (DW_TAG_variable)
    <a52>   DW_AT_name        : PSRSYNC     <a5a>   DW_AT_type        : <0x1089>     <a5e>   DW_AT_const_value : 0
 <1><a5f>: Abbrev Number: 3 (DW_TAG_variable)
    <a60>   DW_AT_name        : OCIE2B     <a67>   DW_AT_type        : <0x1089>     <a6b>   DW_AT_const_value : 2
 <1><a6c>: Abbrev Number: 3 (DW_TAG_variable)
    <a6d>   DW_AT_name        : OCIE2A     <a74>   DW_AT_type        : <0x1089>     <a78>   DW_AT_const_value : 1
 <1><a79>: Abbrev Number: 3 (DW_TAG_variable)
    <a7a>   DW_AT_name        : TOIE2
    <a80>   DW_AT_type        : <0x1089>     <a84>   DW_AT_const_value : 0
 <1><a85>: Abbrev Number: 3 (DW_TAG_variable)
    <a86>   DW_AT_name        : OCF2B
    <a8c>   DW_AT_type        : <0x1089>     <a90>   DW_AT_const_value : 2
 <1><a91>: Abbrev Number: 3 (DW_TAG_variable)
    <a92>   DW_AT_name        : OCF2A
    <a98>   DW_AT_type        : <0x1089>     <a9c>   DW_AT_const_value : 1
 <1><a9d>: Abbrev Number: 3 (DW_TAG_variable)
    <a9e>   DW_AT_name        : TOV2
    <aa3>   DW_AT_type        : <0x1089>     <aa7>   DW_AT_const_value : 0
 <1><aa8>: Abbrev Number: 3 (DW_TAG_variable)
    <aa9>   DW_AT_name        : COM2A
    <aaf>   DW_AT_type        : <0x1089>     <ab3>   DW_AT_const_value : 6
 <1><ab4>: Abbrev Number: 3 (DW_TAG_variable)
    <ab5>   DW_AT_name        : COM2B
    <abb>   DW_AT_type        : <0x1089>     <abf>   DW_AT_const_value : 4
 <1><ac0>: Abbrev Number: 3 (DW_TAG_variable)
    <ac1>   DW_AT_name        : WGM2
    <ac6>   DW_AT_type        : <0x1089>     <aca>   DW_AT_const_value : 0
 <1><acb>: Abbrev Number: 3 (DW_TAG_variable)
    <acc>   DW_AT_name        : FOC2A
    <ad2>   DW_AT_type        : <0x1089>     <ad6>   DW_AT_const_value : 7
 <1><ad7>: Abbrev Number: 3 (DW_TAG_variable)
    <ad8>   DW_AT_name        : FOC2B
    <ade>   DW_AT_type        : <0x1089>     <ae2>   DW_AT_const_value : 6
 <1><ae3>: Abbrev Number: 3 (DW_TAG_variable)
    <ae4>   DW_AT_name        : WGM22
    <aea>   DW_AT_type        : <0x1089>     <aee>   DW_AT_const_value : 3
 <1><aef>: Abbrev Number: 3 (DW_TAG_variable)
    <af0>   DW_AT_name        : CS2
    <af4>   DW_AT_type        : <0x1089>     <af8>   DW_AT_const_value : 0
 <1><af9>: Abbrev Number: 3 (DW_TAG_variable)
    <afa>   DW_AT_name        : EXCLK
    <b00>   DW_AT_type        : <0x1089>     <b04>   DW_AT_const_value : 6
 <1><b05>: Abbrev Number: 3 (DW_TAG_variable)
    <b06>   DW_AT_name        : AS2
    <b0a>   DW_AT_type        : <0x1089>     <b0e>   DW_AT_const_value : 5
 <1><b0f>: Abbrev Number: 3 (DW_TAG_variable)
    <b10>   DW_AT_name        : TCN2UB     <b17>   DW_AT_type        : <0x1089>     <b1b>   DW_AT_const_value : 4
 <1><b1c>: Abbrev Number: 3 (DW_TAG_variable)
    <b1d>   DW_AT_name        : OCR2AUB     <b25>   DW_AT_type        : <0x1089>     <b29>   DW_AT_const_value : 3
 <1><b2a>: Abbrev Number: 3 (DW_TAG_variable)
    <b2b>   DW_AT_name        : OCR2BUB     <b33>   DW_AT_type        : <0x1089>     <b37>   DW_AT_const_value : 2
 <1><b38>: Abbrev Number: 3 (DW_TAG_variable)
    <b39>   DW_AT_name        : TCR2AUB     <b41>   DW_AT_type        : <0x1089>     <b45>   DW_AT_const_value : 1
 <1><b46>: Abbrev Number: 3 (DW_TAG_variable)
    <b47>   DW_AT_name        : TCR2BUB     <b4f>   DW_AT_type        : <0x1089>     <b53>   DW_AT_const_value : 0
 <1><b54>: Abbrev Number: 3 (DW_TAG_variable)
    <b55>   DW_AT_name        : PSRASY     <b5c>   DW_AT_type        : <0x1089>     <b60>   DW_AT_const_value : 1
 <1><b61>: Abbrev Number: 3 (DW_TAG_variable)
    <b62>   DW_AT_name        : REFS
    <b67>   DW_AT_type        : <0x1089>     <b6b>   DW_AT_const_value : 6
 <1><b6c>: Abbrev Number: 3 (DW_TAG_variable)
    <b6d>   DW_AT_name        : ADLAR
    <b73>   DW_AT_type        : <0x1089>     <b77>   DW_AT_const_value : 5
 <1><b78>: Abbrev Number: 3 (DW_TAG_variable)
    <b79>   DW_AT_name        : MUX
    <b7d>   DW_AT_type        : <0x1089>     <b81>   DW_AT_const_value : 0
 <1><b82>: Abbrev Number: 3 (DW_TAG_variable)
    <b83>   DW_AT_name        : ADEN
    <b88>   DW_AT_type        : <0x1089>     <b8c>   DW_AT_const_value : 7
 <1><b8d>: Abbrev Number: 3 (DW_TAG_variable)
    <b8e>   DW_AT_name        : ADSC
    <b93>   DW_AT_type        : <0x1089>     <b97>   DW_AT_const_value : 6
 <1><b98>: Abbrev Number: 3 (DW_TAG_variable)
    <b99>   DW_AT_name        : ADATE
    <b9f>   DW_AT_type        : <0x1089>     <ba3>   DW_AT_const_value : 5
 <1><ba4>: Abbrev Number: 3 (DW_TAG_variable)
    <ba5>   DW_AT_name        : ADIF
    <baa>   DW_AT_type        : <0x1089>     <bae>   DW_AT_const_value : 4
 <1><baf>: Abbrev Number: 3 (DW_TAG_variable)
    <bb0>   DW_AT_name        : ADIE
    <bb5>   DW_AT_type        : <0x1089>     <bb9>   DW_AT_const_value : 3
 <1><bba>: Abbrev Number: 3 (DW_TAG_variable)
    <bbb>   DW_AT_name        : ADPS
    <bc0>   DW_AT_type        : <0x1089>     <bc4>   DW_AT_const_value : 0
 <1><bc5>: Abbrev Number: 3 (DW_TAG_variable)
    <bc6>   DW_AT_name        : ACME
    <bcb>   DW_AT_type        : <0x1089>     <bcf>   DW_AT_const_value : 6
 <1><bd0>: Abbrev Number: 3 (DW_TAG_variable)
    <bd1>   DW_AT_name        : ADTS
    <bd6>   DW_AT_type        : <0x1089>     <bda>   DW_AT_const_value : 0
 <1><bdb>: Abbrev Number: 3 (DW_TAG_variable)
    <bdc>   DW_AT_name        : ADC5D
    <be2>   DW_AT_type        : <0x1089>     <be6>   DW_AT_const_value : 5
 <1><be7>: Abbrev Number: 3 (DW_TAG_variable)
    <be8>   DW_AT_name        : ADC4D
    <bee>   DW_AT_type        : <0x1089>     <bf2>   DW_AT_const_value : 4
 <1><bf3>: Abbrev Number: 3 (DW_TAG_variable)
    <bf4>   DW_AT_name        : ADC3D
    <bfa>   DW_AT_type        : <0x1089>     <bfe>   DW_AT_const_value : 3
 <1><bff>: Abbrev Number: 3 (DW_TAG_variable)
    <c00>   DW_AT_name        : ADC2D
    <c06>   DW_AT_type        : <0x1089>     <c0a>   DW_AT_const_value : 2
 <1><c0b>: Abbrev Number: 3 (DW_TAG_variable)
    <c0c>   DW_AT_name        : ADC1D
    <c12>   DW_AT_type        : <0x1089>     <c16>   DW_AT_const_value : 1
 <1><c17>: Abbrev Number: 3 (DW_TAG_variable)
    <c18>   DW_AT_name        : ADC0D
    <c1e>   DW_AT_type        : <0x1089>     <c22>   DW_AT_const_value : 0
 <1><c23>: Abbrev Number: 3 (DW_TAG_variable)
    <c24>   DW_AT_name        : ACD
    <c28>   DW_AT_type        : <0x1089>     <c2c>   DW_AT_const_value : 7
 <1><c2d>: Abbrev Number: 3 (DW_TAG_variable)
    <c2e>   DW_AT_name        : ACBG
    <c33>   DW_AT_type        : <0x1089>     <c37>   DW_AT_const_value : 6
 <1><c38>: Abbrev Number: 3 (DW_TAG_variable)
    <c39>   DW_AT_name        : ACO
    <c3d>   DW_AT_type        : <0x1089>     <c41>   DW_AT_const_value : 5
 <1><c42>: Abbrev Number: 3 (DW_TAG_variable)
    <c43>   DW_AT_name        : ACI
    <c47>   DW_AT_type        : <0x1089>     <c4b>   DW_AT_const_value : 4
 <1><c4c>: Abbrev Number: 3 (DW_TAG_variable)
    <c4d>   DW_AT_name        : ACIE
    <c52>   DW_AT_type        : <0x1089>     <c56>   DW_AT_const_value : 3
 <1><c57>: Abbrev Number: 3 (DW_TAG_variable)
    <c58>   DW_AT_name        : ACIC
    <c5d>   DW_AT_type        : <0x1089>     <c61>   DW_AT_const_value : 2
 <1><c62>: Abbrev Number: 3 (DW_TAG_variable)
    <c63>   DW_AT_name        : ACIS
    <c68>   DW_AT_type        : <0x1089>     <c6c>   DW_AT_const_value : 0
 <1><c6d>: Abbrev Number: 3 (DW_TAG_variable)
    <c6e>   DW_AT_name        : AIN1D
    <c74>   DW_AT_type        : <0x1089>     <c78>   DW_AT_const_value : 1
 <1><c79>: Abbrev Number: 3 (DW_TAG_variable)
    <c7a>   DW_AT_name        : AIN0D
    <c80>   DW_AT_type        : <0x1089>     <c84>   DW_AT_const_value : 0
 <1><c85>: Abbrev Number: 3 (DW_TAG_variable)
    <c86>   DW_AT_name        : FOC0A
    <c8c>   DW_AT_type        : <0x1089>     <c90>   DW_AT_const_value : 7
 <1><c91>: Abbrev Number: 3 (DW_TAG_variable)
    <c92>   DW_AT_name        : FOC0B
    <c98>   DW_AT_type        : <0x1089>     <c9c>   DW_AT_const_value : 6
 <1><c9d>: Abbrev Number: 3 (DW_TAG_variable)
    <c9e>   DW_AT_name        : WGM02
    <ca4>   DW_AT_type        : <0x1089>     <ca8>   DW_AT_const_value : 3
 <1><ca9>: Abbrev Number: 3 (DW_TAG_variable)
    <caa>   DW_AT_name        : CS0
    <cae>   DW_AT_type        : <0x1089>     <cb2>   DW_AT_const_value : 0
 <1><cb3>: Abbrev Number: 3 (DW_TAG_variable)
    <cb4>   DW_AT_name        : COM0A
    <cba>   DW_AT_type        : <0x1089>     <cbe>   DW_AT_const_value : 6
 <1><cbf>: Abbrev Number: 3 (DW_TAG_variable)
    <cc0>   DW_AT_name        : COM0B
    <cc6>   DW_AT_type        : <0x1089>     <cca>   DW_AT_const_value : 4
 <1><ccb>: Abbrev Number: 3 (DW_TAG_variable)
    <ccc>   DW_AT_name        : WGM0
    <cd1>   DW_AT_type        : <0x1089>     <cd5>   DW_AT_const_value : 0
 <1><cd6>: Abbrev Number: 3 (DW_TAG_variable)
    <cd7>   DW_AT_name        : OCIE0B     <cde>   DW_AT_type        : <0x1089>     <ce2>   DW_AT_const_value : 2
 <1><ce3>: Abbrev Number: 3 (DW_TAG_variable)
    <ce4>   DW_AT_name        : OCIE0A     <ceb>   DW_AT_type        : <0x1089>     <cef>   DW_AT_const_value : 1
 <1><cf0>: Abbrev Number: 3 (DW_TAG_variable)
    <cf1>   DW_AT_name        : TOIE0
    <cf7>   DW_AT_type        : <0x1089>     <cfb>   DW_AT_const_value : 0
 <1><cfc>: Abbrev Number: 3 (DW_TAG_variable)
    <cfd>   DW_AT_name        : OCF0B
    <d03>   DW_AT_type        : <0x1089>     <d07>   DW_AT_const_value : 2
 <1><d08>: Abbrev Number: 3 (DW_TAG_variable)
    <d09>   DW_AT_name        : OCF0A
    <d0f>   DW_AT_type        : <0x1089>     <d13>   DW_AT_const_value : 1
 <1><d14>: Abbrev Number: 3 (DW_TAG_variable)
    <d15>   DW_AT_name        : TOV0
    <d1a>   DW_AT_type        : <0x1089>     <d1e>   DW_AT_const_value : 0
 <1><d1f>: Abbrev Number: 3 (DW_TAG_variable)
    <d20>   DW_AT_name        : ISC1
    <d25>   DW_AT_type        : <0x1089>     <d29>   DW_AT_const_value : 2
 <1><d2a>: Abbrev Number: 3 (DW_TAG_variable)
    <d2b>   DW_AT_name        : ISC0
    <d30>   DW_AT_type        : <0x1089>     <d34>   DW_AT_const_value : 0
 <1><d35>: Abbrev Number: 3 (DW_TAG_variable)
    <d36>   DW_AT_name        : INT
    <d3a>   DW_AT_type        : <0x1089>     <d3e>   DW_AT_const_value : 0
 <1><d3f>: Abbrev Number: 3 (DW_TAG_variable)
    <d40>   DW_AT_name        : INTF
    <d45>   DW_AT_type        : <0x1089>     <d49>   DW_AT_const_value : 0
 <1><d4a>: Abbrev Number: 3 (DW_TAG_variable)
    <d4b>   DW_AT_name        : PCIE
    <d50>   DW_AT_type        : <0x1089>     <d54>   DW_AT_const_value : 0
 <1><d55>: Abbrev Number: 3 (DW_TAG_variable)
    <d56>   DW_AT_name        : PCINT
    <d5c>   DW_AT_type        : <0x1089>     <d60>   DW_AT_const_value : 0
 <1><d61>: Abbrev Number: 3 (DW_TAG_variable)
    <d62>   DW_AT_name        : PCIF
    <d67>   DW_AT_type        : <0x1089>     <d6b>   DW_AT_const_value : 0
 <1><d6c>: Abbrev Number: 3 (DW_TAG_variable)
    <d6d>   DW_AT_name        : SPIF
    <d72>   DW_AT_type        : <0x1089>     <d76>   DW_AT_const_value : 7
 <1><d77>: Abbrev Number: 3 (DW_TAG_variable)
    <d78>   DW_AT_name        : WCOL
    <d7d>   DW_AT_type        : <0x1089>     <d81>   DW_AT_const_value : 6
 <1><d82>: Abbrev Number: 3 (DW_TAG_variable)
    <d83>   DW_AT_name        : SPI2X
    <d89>   DW_AT_type        : <0x1089>     <d8d>   DW_AT_const_value : 0
 <1><d8e>: Abbrev Number: 3 (DW_TAG_variable)
    <d8f>   DW_AT_name        : SPIE
    <d94>   DW_AT_type        : <0x1089>     <d98>   DW_AT_const_value : 7
 <1><d99>: Abbrev Number: 3 (DW_TAG_variable)
    <d9a>   DW_AT_name        : SPE
    <d9e>   DW_AT_type        : <0x1089>     <da2>   DW_AT_const_value : 6
 <1><da3>: Abbrev Number: 3 (DW_TAG_variable)
    <da4>   DW_AT_name        : DORD
    <da9>   DW_AT_type        : <0x1089>     <dad>   DW_AT_const_value : 5
 <1><dae>: Abbrev Number: 3 (DW_TAG_variable)
    <daf>   DW_AT_name        : MSTR
    <db4>   DW_AT_type        : <0x1089>     <db8>   DW_AT_const_value : 4
 <1><db9>: Abbrev Number: 3 (DW_TAG_variable)
    <dba>   DW_AT_name        : CPOL
    <dbf>   DW_AT_type        : <0x1089>     <dc3>   DW_AT_const_value : 3
 <1><dc4>: Abbrev Number: 3 (DW_TAG_variable)
    <dc5>   DW_AT_name        : CPHA
    <dca>   DW_AT_type        : <0x1089>     <dce>   DW_AT_const_value : 2
 <1><dcf>: Abbrev Number: 3 (DW_TAG_variable)
    <dd0>   DW_AT_name        : SPR
    <dd4>   DW_AT_type        : <0x1089>     <dd8>   DW_AT_const_value : 0
 <1><dd9>: Abbrev Number: 3 (DW_TAG_variable)
    <dda>   DW_AT_name        : WDIF
    <ddf>   DW_AT_type        : <0x1089>     <de3>   DW_AT_const_value : 7
 <1><de4>: Abbrev Number: 3 (DW_TAG_variable)
    <de5>   DW_AT_name        : WDIE
    <dea>   DW_AT_type        : <0x1089>     <dee>   DW_AT_const_value : 6
 <1><def>: Abbrev Number: 3 (DW_TAG_variable)
    <df0>   DW_AT_name        : WDP
    <df4>   DW_AT_type        : <0x1089>     <df8>   DW_AT_const_value : 0
 <1><df9>: Abbrev Number: 3 (DW_TAG_variable)
    <dfa>   DW_AT_name        : WDCE
    <dff>   DW_AT_type        : <0x1089>     <e03>   DW_AT_const_value : 4
 <1><e04>: Abbrev Number: 3 (DW_TAG_variable)
    <e05>   DW_AT_name        : WDE
    <e09>   DW_AT_type        : <0x1089>     <e0d>   DW_AT_const_value : 3
 <1><e0e>: Abbrev Number: 3 (DW_TAG_variable)
    <e0f>   DW_AT_name        : PRTWI
    <e15>   DW_AT_type        : <0x1089>     <e19>   DW_AT_const_value : 7
 <1><e1a>: Abbrev Number: 3 (DW_TAG_variable)
    <e1b>   DW_AT_name        : PRTIM2     <e22>   DW_AT_type        : <0x1089>     <e26>   DW_AT_const_value : 6
 <1><e27>: Abbrev Number: 3 (DW_TAG_variable)
    <e28>   DW_AT_name        : PRTIM0     <e2f>   DW_AT_type        : <0x1089>     <e33>   DW_AT_const_value : 5
 <1><e34>: Abbrev Number: 3 (DW_TAG_variable)
    <e35>   DW_AT_name        : PRTIM1     <e3c>   DW_AT_type        : <0x1089>     <e40>   DW_AT_const_value : 3
 <1><e41>: Abbrev Number: 3 (DW_TAG_variable)
    <e42>   DW_AT_name        : PRSPI
    <e48>   DW_AT_type        : <0x1089>     <e4c>   DW_AT_const_value : 2
 <1><e4d>: Abbrev Number: 3 (DW_TAG_variable)
    <e4e>   DW_AT_name        : PRUSART0     <e57>   DW_AT_type        : <0x1089>     <e5b>   DW_AT_const_value : 1
 <1><e5c>: Abbrev Number: 3 (DW_TAG_variable)
    <e5d>   DW_AT_name        : PRADC
    <e63>   DW_AT_type        : <0x1089>     <e67>   DW_AT_const_value : 0
 <1><e68>: Abbrev Number: 3 (DW_TAG_variable)
    <e69>   DW_AT_name        : CLKPCE     <e70>   DW_AT_type        : <0x1089>     <e74>   DW_AT_const_value : 7
 <1><e75>: Abbrev Number: 3 (DW_TAG_variable)
    <e76>   DW_AT_name        : CLKPS
    <e7c>   DW_AT_type        : <0x1089>     <e80>   DW_AT_const_value : 0
 <1><e81>: Abbrev Number: 3 (DW_TAG_variable)
    <e82>   DW_AT_name        : I
    <e84>   DW_AT_type        : <0x1089>     <e88>   DW_AT_const_value : 7
 <1><e89>: Abbrev Number: 3 (DW_TAG_variable)
    <e8a>   DW_AT_name        : T
    <e8c>   DW_AT_type        : <0x1089>     <e90>   DW_AT_const_value : 6
 <1><e91>: Abbrev Number: 3 (DW_TAG_variable)
    <e92>   DW_AT_name        : H
    <e94>   DW_AT_type        : <0x1089>     <e98>   DW_AT_const_value : 5
 <1><e99>: Abbrev Number: 3 (DW_TAG_variable)
    <e9a>   DW_AT_name        : S
    <e9c>   DW_AT_type        : <0x1089>     <ea0>   DW_AT_const_value : 4
 <1><ea1>: Abbrev Number: 3 (DW_TAG_variable)
    <ea2>   DW_AT_name        : V
    <ea4>   DW_AT_type        : <0x1089>     <ea8>   DW_AT_const_value : 3
 <1><ea9>: Abbrev Number: 3 (DW_TAG_variable)
    <eaa>   DW_AT_name        : N
    <eac>   DW_AT_type        : <0x1089>     <eb0>   DW_AT_const_value : 2
 <1><eb1>: Abbrev Number: 3 (DW_TAG_variable)
    <eb2>   DW_AT_name        : Z
    <eb4>   DW_AT_type        : <0x1089>     <eb8>   DW_AT_const_value : 1
 <1><eb9>: Abbrev Number: 3 (DW_TAG_variable)
    <eba>   DW_AT_name        : C
    <ebc>   DW_AT_type        : <0x1089>     <ec0>   DW_AT_const_value : 0
 <1><ec1>: Abbrev Number: 3 (DW_TAG_variable)
    <ec2>   DW_AT_name        : SPMIE
    <ec8>   DW_AT_type        : <0x1089>     <ecc>   DW_AT_const_value : 7
 <1><ecd>: Abbrev Number: 3 (DW_TAG_variable)
    <ece>   DW_AT_name        : RWWSB
    <ed4>   DW_AT_type        : <0x1089>     <ed8>   DW_AT_const_value : 6
 <1><ed9>: Abbrev Number: 3 (DW_TAG_variable)
    <eda>   DW_AT_name        : RWWSRE     <ee1>   DW_AT_type        : <0x1089>     <ee5>   DW_AT_const_value : 4
 <1><ee6>: Abbrev Number: 3 (DW_TAG_variable)
    <ee7>   DW_AT_name        : BLBSET     <eee>   DW_AT_type        : <0x1089>     <ef2>   DW_AT_const_value : 3
 <1><ef3>: Abbrev Number: 3 (DW_TAG_variable)
    <ef4>   DW_AT_name        : PGWRT
    <efa>   DW_AT_type        : <0x1089>     <efe>   DW_AT_const_value : 2
 <1><eff>: Abbrev Number: 3 (DW_TAG_variable)
    <f00>   DW_AT_name        : PGERS
    <f06>   DW_AT_type        : <0x1089>     <f0a>   DW_AT_const_value : 1
 <1><f0b>: Abbrev Number: 3 (DW_TAG_variable)
    <f0c>   DW_AT_name        : SELFPRGEN     <f16>   DW_AT_type        : <0x1089>     <f1a>   DW_AT_const_value : 0
 <1><f1b>: Abbrev Number: 3 (DW_TAG_variable)
    <f1c>   DW_AT_name        : BODS
    <f21>   DW_AT_type        : <0x1089>     <f25>   DW_AT_const_value : 6
 <1><f26>: Abbrev Number: 3 (DW_TAG_variable)
    <f27>   DW_AT_name        : BODSE
    <f2d>   DW_AT_type        : <0x1089>     <f31>   DW_AT_const_value : 5
 <1><f32>: Abbrev Number: 3 (DW_TAG_variable)
    <f33>   DW_AT_name        : PUD
    <f37>   DW_AT_type        : <0x1089>     <f3b>   DW_AT_const_value : 4
 <1><f3c>: Abbrev Number: 3 (DW_TAG_variable)
    <f3d>   DW_AT_name        : IVSEL
    <f43>   DW_AT_type        : <0x1089>     <f47>   DW_AT_const_value : 1
 <1><f48>: Abbrev Number: 3 (DW_TAG_variable)
    <f49>   DW_AT_name        : IVCE
    <f4e>   DW_AT_type        : <0x1089>     <f52>   DW_AT_const_value : 0
 <1><f53>: Abbrev Number: 3 (DW_TAG_variable)
    <f54>   DW_AT_name        : WDRF
    <f59>   DW_AT_type        : <0x1089>     <f5d>   DW_AT_const_value : 3
 <1><f5e>: Abbrev Number: 3 (DW_TAG_variable)
    <f5f>   DW_AT_name        : BORF
    <f64>   DW_AT_type        : <0x1089>     <f68>   DW_AT_const_value : 2
 <1><f69>: Abbrev Number: 3 (DW_TAG_variable)
    <f6a>   DW_AT_name        : EXTRF
    <f70>   DW_AT_type        : <0x1089>     <f74>   DW_AT_const_value : 1
 <1><f75>: Abbrev Number: 3 (DW_TAG_variable)
    <f76>   DW_AT_name        : PORF
    <f7b>   DW_AT_type        : <0x1089>     <f7f>   DW_AT_const_value : 0
 <1><f80>: Abbrev Number: 3 (DW_TAG_variable)
    <f81>   DW_AT_name        : SM
    <f84>   DW_AT_type        : <0x1089>     <f88>   DW_AT_const_value : 1
 <1><f89>: Abbrev Number: 3 (DW_TAG_variable)
    <f8a>   DW_AT_name        : SE
    <f8d>   DW_AT_type        : <0x1089>     <f91>   DW_AT_const_value : 0
 <1><f92>: Abbrev Number: 3 (DW_TAG_variable)
    <f93>   DW_AT_name        : EEPM
    <f98>   DW_AT_type        : <0x1089>     <f9c>   DW_AT_const_value : 4
 <1><f9d>: Abbrev Number: 3 (DW_TAG_variable)
    <f9e>   DW_AT_name        : EERIE
    <fa4>   DW_AT_type        : <0x1089>     <fa8>   DW_AT_const_value : 3
 <1><fa9>: Abbrev Number: 3 (DW_TAG_variable)
    <faa>   DW_AT_name        : EEMPE
    <fb0>   DW_AT_type        : <0x1089>     <fb4>   DW_AT_const_value : 2
 <1><fb5>: Abbrev Number: 3 (DW_TAG_variable)
    <fb6>   DW_AT_name        : EEPE
    <fbb>   DW_AT_type        : <0x1089>     <fbf>   DW_AT_const_value : 1
 <1><fc0>: Abbrev Number: 3 (DW_TAG_variable)
    <fc1>   DW_AT_name        : EERE
    <fc6>   DW_AT_type        : <0x1089>     <fca>   DW_AT_const_value : 0
 <1><fcb>: Abbrev Number: 4 (DW_TAG_subprogram)
    <fcc>   DW_AT_name        : _FPC_haltproc     <fda>   DW_AT_prototyped  : 1
    <fdb>   DW_AT_external    : 1
    <fdc>   DW_AT_low_pc      : 0x214
    <fe0>   DW_AT_high_pc     : 0x218
 <2><fe4>: Abbrev Number: 0
 <1><fe5>: Abbrev Number: 4 (DW_TAG_subprogram)
    <fe6>   DW_AT_name        : Default_IRQ_handler     <ffa>   DW_AT_prototyped  : 1
    <ffb>   DW_AT_external    : 1
    <ffc>   DW_AT_low_pc      : 0x218
    <1000>   DW_AT_high_pc     : 0x21a
 <2><1004>: Abbrev Number: 0
 <1><1005>: Abbrev Number: 4 (DW_TAG_subprogram)
    <1006>   DW_AT_name        : _FPC_init_zeroreg_SP     <101b>   DW_AT_prototyped  : 1
    <101c>   DW_AT_external    : 1
    <101d>   DW_AT_low_pc      : 0x68
    <1021>   DW_AT_high_pc     : 0x72
 <2><1025>: Abbrev Number: 0
 <1><1026>: Abbrev Number: 4 (DW_TAG_subprogram)
    <1027>   DW_AT_name        : _FPC_copy_data     <1036>   DW_AT_prototyped  : 1
    <1037>   DW_AT_external    : 1
    <1038>   DW_AT_low_pc      : 0x72
    <103c>   DW_AT_high_pc     : 0x9a
 <2><1040>: Abbrev Number: 0
 <1><1041>: Abbrev Number: 4 (DW_TAG_subprogram)
    <1042>   DW_AT_name        : _FPC_jmp_main     <1050>   DW_AT_prototyped  : 1
    <1051>   DW_AT_external    : 1
    <1052>   DW_AT_low_pc      : 0x9a
    <1056>   DW_AT_high_pc     : 0x9e
 <2><105a>: Abbrev Number: 0
 <1><105b>: Abbrev Number: 4 (DW_TAG_subprogram)
    <105c>   DW_AT_name        : _FPC_start     <1067>   DW_AT_prototyped  : 1
    <1068>   DW_AT_external    : 1
    <1069>   DW_AT_low_pc      : 0x0
    <106d>   DW_AT_high_pc     : 0x68
 <2><1071>: Abbrev Number: 0
 <1><1072>: Abbrev Number: 5 (DW_TAG_typedef)
    <1073>   DW_AT_name        : Byte
    <1078>   DW_AT_type        : <0x107c>  <1><107c>: Abbrev Number: 6 (DW_TAG_base_type)
    <107d>   DW_AT_name        : Byte
    <1082>   DW_AT_encoding    : 7    (unsigned)     <1083>   DW_AT_byte_size   : 1
 <1><1084>: Abbrev Number: 7 (DW_TAG_reference_type)     <1085>   DW_AT_type        : <0x1072>  <1><1089>: Abbrev Number: 5 (DW_TAG_typedef)
    <108a>   DW_AT_name        : ShortInt     <1093>   DW_AT_type        : <0x1097>  <1><1097>: Abbrev Number: 6 (DW_TAG_base_type)
    <1098>   DW_AT_name        : ShortInt     <10a1>   DW_AT_encoding    : 5    (signed)     <10a2>   DW_AT_byte_size   : 1
 <1><10a3>: Abbrev Number: 7 (DW_TAG_reference_type)     <10a4>   DW_AT_type        : <0x1089>  <1><10a8>: Abbrev Number: 5 (DW_TAG_typedef)
    <10a9>   DW_AT_name        : Word
    <10ae>   DW_AT_type        : <0x10b2>  <1><10b2>: Abbrev Number: 6 (DW_TAG_base_type)
    <10b3>   DW_AT_name        : Word
    <10b8>   DW_AT_encoding    : 7    (unsigned)     <10b9>   DW_AT_byte_size   : 2
 <1><10ba>: Abbrev Number: 7 (DW_TAG_reference_type)     <10bb>   DW_AT_type        : <0x10a8>  <1><10bf>: Abbrev Number: 0
  Compilation Unit @ offset 0x10c0:
   Length:        0x2c1 (32-bit)
   Version:       3
   Abbrev Offset: 0x88
   Pointer Size:  4
 <0><10cb>: Abbrev Number: 1 (DW_TAG_compile_unit)     <10cc>   DW_AT_name        : utestobj.pas     <10d9>   DW_AT_producer    : Free Pascal 3.3.1 2022/09/24     <10f6>   DW_AT_comp_dir    :
G:/Programming/dimitris/Projects/fpc_avr_bugs/debug_objects/     <1133>   DW_AT_language    : 9    (ANSI Pascal)     <1134>   DW_AT_identifier_case: 3    (case_insensitive)     <1135>   DW_AT_stmt_list   : 0x1b8
    <1139>   DW_AT_low_pc      : 0x21a
    <113d>   DW_AT_high_pc     : 0x32a
 <1><1141>: Abbrev Number: 2 (DW_TAG_subprogram)
    <1142>   DW_AT_name        : DoSomething     <114e>   DW_AT_prototyped  : 1
    <114f>   DW_AT_external    : 1
    <1150>   DW_AT_low_pc      : 0x2d2
    <1154>   DW_AT_high_pc     : 0x32a
 <2><1158>: Abbrev Number: 3 (DW_TAG_variable)
    <1159>   DW_AT_name        : i
    <115b>   DW_AT_location    : 2 byte block: 8c 2 (DW_OP_breg28 (r28): 2)     <115e>   DW_AT_type        : <0x116d>  <2><1162>: Abbrev Number: 3 (DW_TAG_variable)
    <1163>   DW_AT_name        : x
    <1165>   DW_AT_location    : 2 byte block: 8c 4 (DW_OP_breg28 (r28): 4)     <1168>   DW_AT_type        : <0x116d>  <2><116c>: Abbrev Number: 0
 <1><116d>: Abbrev Number: 4 (DW_TAG_typedef)
    <116e>   DW_AT_name        : SmallInt     <1177>   DW_AT_type        : <0x117b>  <1><117b>: Abbrev Number: 5 (DW_TAG_base_type)
    <117c>   DW_AT_name        : SmallInt     <1185>   DW_AT_encoding    : 5    (signed)     <1186>   DW_AT_byte_size   : 2
 <1><1187>: Abbrev Number: 6 (DW_TAG_reference_type)     <1188>   DW_AT_type        : <0x116d>  <1><118c>: Abbrev Number: 4 (DW_TAG_typedef)
    <118d>   DW_AT_name        : TTestObj     <1196>   DW_AT_type        : <0x119a>  <1><119a>: Abbrev Number: 7 (DW_TAG_structure_type)     <119b>   DW_AT_name        : TTestObj     <11a4>   DW_AT_byte_size   : 0
 <2><11a5>: Abbrev Number: 0
 <1><11a6>: Abbrev Number: 6 (DW_TAG_reference_type)     <11a7>   DW_AT_type        : <0x118c>  <1><11ab>: Abbrev Number: 4 (DW_TAG_typedef)
    <11ac>   DW_AT_name        : TTestRec     <11b5>   DW_AT_type        : <0x11b9>  <1><11b9>: Abbrev Number: 7 (DW_TAG_structure_type)     <11ba>   DW_AT_name        : TTESTREC     <11c3>   DW_AT_byte_size   : 0
 <2><11c4>: Abbrev Number: 2 (DW_TAG_subprogram)
    <11c5>   DW_AT_name        : DoSomething     <11d1>   DW_AT_prototyped  : 1
    <11d2>   DW_AT_external    : 1
    <11d3>   DW_AT_low_pc      : 0x276
    <11d7>   DW_AT_high_pc     : 0x2d2
 <3><11db>: Abbrev Number: 8 (DW_TAG_formal_parameter)     <11dc>   DW_AT_name        : this
    <11e1>   DW_AT_location    : 3 byte block: 8c 2 6 (DW_OP_breg28 (r28): 2; DW_OP_deref)
    <11e5>   DW_AT_artificial  : 1
    <11e6>   DW_AT_type        : <0x11ab>  <3><11ea>: Abbrev Number: 3 (DW_TAG_variable)
    <11eb>   DW_AT_name        : i
    <11ed>   DW_AT_location    : 2 byte block: 8c 4 (DW_OP_breg28 (r28): 4)     <11f0>   DW_AT_type        : <0x116d>  <3><11f4>: Abbrev Number: 3 (DW_TAG_variable)
    <11f5>   DW_AT_name        : x
    <11f7>   DW_AT_location    : 2 byte block: 8c 6 (DW_OP_breg28 (r28): 6)     <11fa>   DW_AT_type        : <0x116d>  <3><11fe>: Abbrev Number: 0
 <2><11ff>: Abbrev Number: 0
 <1><1200>: Abbrev Number: 6 (DW_TAG_reference_type)     <1201>   DW_AT_type        : <0x11ab>  <1><1205>: Abbrev Number: 4 (DW_TAG_typedef)
    <1206>   DW_AT_name        : $rttidef$INIT_$UTESTOBJ_$$_TTESTOBJ     <122a>   DW_AT_type        : <0x122e>  <1><122e>: Abbrev Number: 7 (DW_TAG_structure_type)     <122f>   DW_AT_name        : $RTTIDEF$INIT_$UTESTOBJ_$$_TTESTOBJ     <1253>   DW_AT_byte_size   : 26
 <2><1254>: Abbrev Number: 0
 <1><1255>: Abbrev Number: 6 (DW_TAG_reference_type)     <1256>   DW_AT_type        : <0x1205>  <1><125a>: Abbrev Number: 4 (DW_TAG_typedef)
    <125b>   DW_AT_name        : $rttidef$RTTI_$UTESTOBJ_$$_TTESTOBJ     <127f>   DW_AT_type        : <0x1283>  <1><1283>: Abbrev Number: 7 (DW_TAG_structure_type)     <1284>   DW_AT_name        : $RTTIDEF$RTTI_$UTESTOBJ_$$_TTESTOBJ     <12a8>   DW_AT_byte_size   : 22
 <2><12a9>: Abbrev Number: 0
 <1><12aa>: Abbrev Number: 6 (DW_TAG_reference_type)     <12ab>   DW_AT_type        : <0x125a>  <1><12af>: Abbrev Number: 4 (DW_TAG_typedef)
    <12b0>   DW_AT_name        : $rttidef$INIT_$UTESTOBJ_$$_TTESTREC     <12d4>   DW_AT_type        : <0x12d8>  <1><12d8>: Abbrev Number: 7 (DW_TAG_structure_type)     <12d9>   DW_AT_name        : $RTTIDEF$INIT_$UTESTOBJ_$$_TTESTREC     <12fd>   DW_AT_byte_size   : 26
 <2><12fe>: Abbrev Number: 0
 <1><12ff>: Abbrev Number: 6 (DW_TAG_reference_type)     <1300>   DW_AT_type        : <0x12af>  <1><1304>: Abbrev Number: 4 (DW_TAG_typedef)
    <1305>   DW_AT_name        : $rtti_header$8     <1314>   DW_AT_type        : <0x1318>  <1><1318>: Abbrev Number: 7 (DW_TAG_structure_type)     <1319>   DW_AT_name        : $RTTI_HEADER$8     <1328>   DW_AT_byte_size   : 10
 <2><1329>: Abbrev Number: 0
 <1><132a>: Abbrev Number: 6 (DW_TAG_reference_type)     <132b>   DW_AT_type        : <0x1304>  <1><132f>: Abbrev Number: 4 (DW_TAG_typedef)
    <1330>   DW_AT_name        : $rttidef$RTTI_$UTESTOBJ_$$_TTESTREC     <1354>   DW_AT_type        : <0x1358>  <1><1358>: Abbrev Number: 7 (DW_TAG_structure_type)     <1359>   DW_AT_name        : $RTTIDEF$RTTI_$UTESTOBJ_$$_TTESTREC     <137d>   DW_AT_byte_size   : 22
 <2><137e>: Abbrev Number: 0
 <1><137f>: Abbrev Number: 6 (DW_TAG_reference_type)     <1380>   DW_AT_type        : <0x132f>  <1><1384>: Abbrev Number: 0
-----------------------

regards,

Dimitrios Chr. Ioannidis

Reply by email

Christo Crause
to Dimitrios Chr. Ioannidis:   it seems that there is another DWARF bug regarding objects in units. Using MPLAB SNAP,…

On Sat, Sep 24, 2022 at 9:41 AM Dimitrios Chr. Ioannidis via fpc-devel <

Show quoted text 6 lines
wrote: Hi, it seems that there is another DWARF bug regarding objects in units. 8<----------------------------

(gdb) s

Show quoted text 6 lines
UTESTOBJs_sTTESTOBJ_s__ss_DOSOMETHING () at utestobj.pas:16 16 x := 5; (gdb) print x No symbol "x" in current context.

I can confirm the same problem with FPC main. The problem is also present in FPC 3.2.2 on Linux 64 bit. Looking at the debug info suggests that the information for the DoSomething method is omitted when declaring an object type, but with advanced records the method info is emitted.

Reply by email

Dimitrios Chr. Ioannidis
to Christo Crause

Hi,

Στις 25/9/2022 2:50 μ.μ., ο/η Christo Crause έγραψε:

Show quoted text 21 lines
On Sat, Sep 24, 2022 at 9:41 AM Dimitrios Chr. Ioannidis via fpc-devel wrote: Hi,    it seems that there is another DWARF bug regarding objects in units. 8<---------------------------- (gdb) s UTESTOBJs_sTTESTOBJ_s__ss_DOSOMETHING () at utestobj.pas:16 16        x := 5; (gdb) print x No symbol "x" in current context. I can confirm the same problem with FPC main.  The problem is also present in FPC 3.2.2 on Linux 64 bit. Looking at the debug info suggests that the information for the DoSomething method is omitted when declaring an object type, but with advanced records the method info is emitted.

I created a bug report,
https://gitlab.com/freepascal.org/fpc/source/-/issues/39920 .

regards,

Dimitrios Chr. Ioannidis

Reply by email