Browse Source

* splitup dwarf2/dwarf3
* changed cpu64bit define into isdwarf64 boolean
* generate info for methods

git-svn-id: trunk@4759 -

Marc Weustink 19 years ago
parent
commit
48340d291e
5 changed files with 537 additions and 610 deletions
  1. 1 1
      compiler/aggas.pas
  2. 519 603
      compiler/dbgdwarf.pas
  3. 14 3
      compiler/options.pas
  4. 1 1
      compiler/systems.pas
  5. 2 2
      compiler/systems/i_linux.pas

+ 1 - 1
compiler/aggas.pas

@@ -230,7 +230,7 @@ implementation
         result := inherited MakeCmdLine;
         result := inherited MakeCmdLine;
         // MWE: disabled again. It generates dwarf info for the generated .s
         // MWE: disabled again. It generates dwarf info for the generated .s
         //      files as well. This conflicts with the info we generate
         //      files as well. This conflicts with the info we generate
-        // if paratargetdbg = dbg_dwarf then
+        // if target_dbg.id = dbg_dwarf then
         //  result := result + ' --gdwarf-2';
         //  result := result + ' --gdwarf-2';
       end;
       end;
 
 

File diff suppressed because it is too large
+ 519 - 603
compiler/dbgdwarf.pas


+ 14 - 3
compiler/options.pas

@@ -732,7 +732,9 @@ begin
                    IllegalPara(opt);
                    IllegalPara(opt);
                end;
                end;
              end;
              end;
-       'g' : begin
+
+           'g' :
+             begin
                if UnsetBool(More, 0) then
                if UnsetBool(More, 0) then
                 begin
                 begin
                   exclude(initmoduleswitches,cs_debuginfo);
                   exclude(initmoduleswitches,cs_debuginfo);
@@ -760,7 +762,7 @@ begin
                        end;
                        end;
                      'd' :
                      'd' :
                        begin
                        begin
-                         paratargetdbg:=dbg_dwarf;
+                         paratargetdbg:=dbg_dwarf2;
                        end;
                        end;
                      'h' :
                      'h' :
                        begin
                        begin
@@ -796,7 +798,16 @@ begin
                        end;
                        end;
                      'w' :
                      'w' :
                        begin
                        begin
-                         paratargetdbg:=dbg_dwarf;
+                         if (j<length(more)) and (more[j+1] in ['2','3']) then
+                           begin
+                             case more[j+1] of
+                               '2': paratargetdbg:=dbg_dwarf2;
+                               '3': paratargetdbg:=dbg_dwarf3;
+                             end;
+                             inc(j);
+                           end
+                         else
+                           paratargetdbg:=dbg_dwarf2;
                        end;
                        end;
                      else
                      else
                        IllegalPara(opt);
                        IllegalPara(opt);

+ 1 - 1
compiler/systems.pas

@@ -169,7 +169,7 @@ interface
        );
        );
 
 
        tdbg = (dbg_none
        tdbg = (dbg_none
-            ,dbg_stabs,dbg_dwarf
+            ,dbg_stabs,dbg_dwarf2,dbg_dwarf3
        );
        );
 
 
        tscripttype = (script_none
        tscripttype = (script_none

+ 2 - 2
compiler/systems/i_linux.pas

@@ -318,7 +318,7 @@ unit i_linux;
             linkextern   : nil;
             linkextern   : nil;
             ar           : ar_gnu_ar;
             ar           : ar_gnu_ar;
             res          : res_none;
             res          : res_none;
-            dbg          : dbg_dwarf;
+            dbg          : dbg_dwarf2;
             script       : script_unix;
             script       : script_unix;
             endian       : endian_big;
             endian       : endian_big;
             alignment    :
             alignment    :
@@ -437,7 +437,7 @@ unit i_linux;
             linkextern   : nil;
             linkextern   : nil;
             ar           : ar_gnu_ar;
             ar           : ar_gnu_ar;
             res          : res_none;
             res          : res_none;
-            dbg          : dbg_dwarf;
+            dbg          : dbg_dwarf2;
             script       : script_unix;
             script       : script_unix;
             endian       : endian_little;
             endian       : endian_little;
             alignment    :
             alignment    :

Some files were not shown because too many files changed in this diff