Browse Source

+ added missing dwarf constants: DW_FORM_sec_offset, DW_FORM_exprloc and DW_FORM_flag_present

git-svn-id: trunk@35717 -
maciej-izak 8 years ago
parent
commit
322720236c
1 changed files with 8 additions and 2 deletions
  1. 8 2
      rtl/inc/lnfodwrf.pp

+ 8 - 2
rtl/inc/lnfodwrf.pp

@@ -131,6 +131,9 @@ const
   DW_FORM_ref8 = $14;
   DW_FORM_ref8 = $14;
   DW_FORM_ref_udata = $15;
   DW_FORM_ref_udata = $15;
   DW_FORM_indirect = $16;
   DW_FORM_indirect = $16;
+  DW_FORM_sec_offset = $17;
+  DW_FORM_exprloc = $18;
+  DW_FORM_flag_present = $19;
 
 
 type
 type
   { state record for the line info state machine }
   { state record for the line info state machine }
@@ -1007,7 +1010,8 @@ procedure SkipAttr(form : QWord);
         ReadNext(dummy,8);
         ReadNext(dummy,8);
       DW_FORM_string:
       DW_FORM_string:
         ReadString;
         ReadString;
-      DW_FORM_block:
+      DW_FORM_block,
+      DW_FORM_exprloc:
         begin
         begin
           ql:=ReadULEB128;
           ql:=ReadULEB128;
           for i:=1 to ql do
           for i:=1 to ql do
@@ -1037,7 +1041,8 @@ procedure SkipAttr(form : QWord);
           end
           end
         else
         else
           ReadNext(dummy,header64.address_size);
           ReadNext(dummy,header64.address_size);
-      DW_FORM_strp:
+      DW_FORM_strp,
+      DW_FORM_sec_offset:
         if isdwarf64 then
         if isdwarf64 then
           ReadNext(dummy,8)
           ReadNext(dummy,8)
         else
         else
@@ -1056,6 +1061,7 @@ procedure SkipAttr(form : QWord);
         ReadULEB128;
         ReadULEB128;
       DW_FORM_indirect:
       DW_FORM_indirect:
         SkipAttr(ReadULEB128);
         SkipAttr(ReadULEB128);
+      DW_FORM_flag_present: {none};
       else
       else
         begin
         begin
           writeln(stderr,'Internal error: unknown dwarf form: $',hexstr(form,2));
           writeln(stderr,'Internal error: unknown dwarf form: $',hexstr(form,2));