Browse Source

+ support for dwarf parameter symbols

git-svn-id: trunk@2397 -
florian 19 years ago
parent
commit
c0f80338ab
1 changed files with 10 additions and 13 deletions
  1. 10 13
      compiler/dbgdwarf.pas

+ 10 - 13
compiler/dbgdwarf.pas

@@ -1184,6 +1184,7 @@ implementation
             templist : taasmoutput;
             templist : taasmoutput;
             blocksize : longint;
             blocksize : longint;
             regidx : longint;
             regidx : longint;
+            tag : tdwarf_tag;
           begin
           begin
             { external symbols can't be resolved at link time, so we
             { external symbols can't be resolved at link time, so we
               can't generate stabs for them
               can't generate stabs for them
@@ -1243,7 +1244,13 @@ implementation
                   end;
                   end;
                 end;
                 end;
             end;
             end;
-            append_entry(DW_TAG_variable,false,[
+
+            if sym.typ=paravarsym then
+              tag:=DW_TAG_formal_parameter
+            else
+              tag:=DW_TAG_variable;
+
+            append_entry(tag,false,[
               DW_AT_name,DW_FORM_string,sym.name+#0,
               DW_AT_name,DW_FORM_string,sym.name+#0,
               {
               {
               DW_AT_decl_file,DW_FORM_data1,0,
               DW_AT_decl_file,DW_FORM_data1,0,
@@ -1263,11 +1270,7 @@ implementation
           end;
           end;
 
 
 
 
-        function paravarsym_stabstr(sym:tparavarsym):Pchar;
-          var
-            st : string;
-            regidx : Tregisterindex;
-            c : char;
+        procedure paravarsym_stabstr(sym:tparavarsym);
           begin
           begin
             {
             {
             result:=nil;
             result:=nil;
@@ -1430,16 +1433,10 @@ implementation
               can have more than one label associated e.g. in case of
               can have more than one label associated e.g. in case of
               an inline procedure expansion }
               an inline procedure expansion }
             ;
             ;
-          {
-          fieldvarsym :
-            stabstr:=fieldvarsym_stabstr(tfieldvarsym(sym));
-          }
           localvarsym :
           localvarsym :
             append_varsym(tlocalvarsym(sym));
             append_varsym(tlocalvarsym(sym));
-          {
           paravarsym :
           paravarsym :
-            stabstr:=paravarsym_stabstr(tparavarsym(sym));
-          }
+            append_varsym(tparavarsym(sym));
           typedconstsym :
           typedconstsym :
             begin
             begin
               append_entry(DW_TAG_variable,false,[
               append_entry(DW_TAG_variable,false,[