Browse Source

* debuginfo fixes

peter 21 năm trước cách đây
mục cha
commit
ef7ae0eab1
2 tập tin đã thay đổi với 25 bổ sung18 xóa
  1. 6 3
      compiler/assemble.pas
  2. 19 15
      compiler/pmodules.pas

+ 6 - 3
compiler/assemble.pas

@@ -783,8 +783,8 @@ Implementation
                   end;
               end;
           end;
-        { External .bss (AB_COMMON) need a symbol relocation }
-        if assigned(ps) and (ps.currbind=AB_COMMON) then
+        { External references (AB_EXTERNAL and AB_COMMON) need a symbol relocation }
+        if assigned(ps) and (ps.currbind in [AB_EXTERNAL,AB_COMMON]) then
           begin
             if currpass=2 then
               begin
@@ -1629,7 +1629,10 @@ Implementation
 end.
 {
   $Log$
-  Revision 1.75  2004-10-04 15:48:11  peter
+  Revision 1.76  2004-10-04 18:26:51  peter
+    * debuginfo fixes
+
+  Revision 1.75  2004/10/04 15:48:11  peter
     * AB_COMMON symbols need special relocation in stabs
 
   Revision 1.74  2004/08/27 20:53:52  peter

+ 19 - 15
compiler/pmodules.pas

@@ -668,6 +668,7 @@ implementation
         { first write all global/local symbols to a temp list. This will flag
           all required tdefs. Afterwards this list will be added }
         vardebuglist:=taasmoutput.create;
+        new_section(vardebuglist,sec_data,'',0);
         if assigned(current_module.globalsymtable) then
           tglobalsymtable(current_module.globalsymtable).concatstabto(vardebuglist);
         if assigned(current_module.localsymtable) then
@@ -753,17 +754,17 @@ implementation
                    (pd.localst.symtabletype<>staticsymtable) and
                    not((pd.proccalloption=pocall_inline) or
                        ((current_module.flags and uf_local_browser)<>0)) then
-                  begin     
+                  begin
                     free_localsymtables(pd.localst);
                     pd.localst.free;
                     pd.localst:=nil;
-                  end;  
+                  end;
               end;
              def:=tstoreddef(def.indexnext);
           end;
       end;
-      
-      
+
+
     procedure parse_implementation_uses;
       begin
          if token=_USES then
@@ -1253,7 +1254,7 @@ implementation
          { release all local symtables that are not needed anymore }
          free_localsymtables(current_module.globalsymtable);
          free_localsymtables(current_module.localsymtable);
-         
+
          { remove static symtable (=refsymtable) here to save some mem }
          if not (cs_local_browser in aktmoduleswitches) then
            begin
@@ -1402,15 +1403,15 @@ implementation
           end
          else
           begin
-	    if (target_info.system = system_i386_netware) or
-	       (target_info.system = system_i386_netwlibc) then
-	    begin
+            if (target_info.system = system_i386_netware) or
+               (target_info.system = system_i386_netwlibc) then
+            begin
               pd:=create_main_proc('PASCALMAIN',potype_proginit,st); { main is need by the netware rtl }
-	    end else
-	    begin
-	      pd:=create_main_proc('main',potype_proginit,st);
+            end else
+            begin
+              pd:=create_main_proc('main',potype_proginit,st);
               pd.aliasnames.insert('PASCALMAIN');
-	    end;
+            end;
           end;
          tcgprocinfo(current_procinfo).parse_body;
          tcgprocinfo(current_procinfo).generate_code;
@@ -1513,10 +1514,10 @@ implementation
 
          { assemble and link }
          create_objectfile;
-         
+
          { release all local symtables that are not needed anymore }
          free_localsymtables(current_module.localsymtable);
-         
+
          { leave when we got an error }
          if (Errorcount>0) and not status.skip_error then
           begin
@@ -1563,7 +1564,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.164  2004-09-14 16:33:46  peter
+  Revision 1.165  2004-10-04 18:26:51  peter
+    * debuginfo fixes
+
+  Revision 1.164  2004/09/14 16:33:46  peter
     * release localsymtables when module is compiled
 
   Revision 1.163  2004/09/04 21:18:47  armin