]> git.sur5r.net Git - cc65/commitdiff
Added the LineInfo count to the info line of the debug info file. This allows
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 22 Aug 2011 21:52:40 +0000 (21:52 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 22 Aug 2011 21:52:40 +0000 (21:52 +0000)
the debug info module to reduce memory usage.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5265 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ld65/dbgfile.c
src/ld65/lineinfo.c
src/ld65/lineinfo.h

index 35884910007413a0894f0b39f1fdca3aa6585aeb..e171866e61443e5b3ac608dfd56c9481aed49c05 100644 (file)
@@ -47,7 +47,7 @@
 #include "lineinfo.h"
 #include "scopes.h"
 #include "segments.h"
-#include "span.h"     
+#include "span.h"
 #include "tpool.h"
 
 
@@ -115,9 +115,10 @@ void CreateDbgFile (void)
      */
     fprintf (
         F,
-        "info\tfile=%u,lib=%u,mod=%u,scope=%u,seg=%u,span=%u,type=%u\n",
+        "info\tfile=%u,lib=%u,line=%u,mod=%u,scope=%u,seg=%u,span=%u,type=%u\n",
         FileInfoCount (),
         LibraryCount (),
+        LineInfoCount (),
         ObjDataCount (),
         ScopeCount (),
         SegmentCount (),
@@ -128,32 +129,32 @@ void CreateDbgFile (void)
     /* Assign the ids to the items */
     AssignIds ();
 
+    /* Output files */
+    PrintDbgFileInfo (F);
+
     /* Output libraries */
     PrintDbgLibraries (F);
 
+    /* Output line info */
+    PrintDbgLineInfo (F);
+
     /* Output modules */
     PrintDbgModules (F);
 
     /* Output the segment info */
     PrintDbgSegments (F);
 
-    /* Output files */
-    PrintDbgFileInfo (F);
-
-    /* Output line info */
-    PrintDbgLineInfo (F);
-
     /* Output spans */
     PrintDbgSpans (F);
-                    
-    /* Output types */
-    PrintDbgTypes (F);
+
+    /* Output scopes */
+    PrintDbgScopes (F);
 
     /* Output symbols */
     PrintDbgSyms (F);
 
-    /* Output scopes */
-    PrintDbgScopes (F);
+    /* Output types */
+    PrintDbgTypes (F);
 
     /* Close the file */
     if (fclose (F) != 0) {
index 0e0368541acbf7c3b9e72132960c2fbb5a5b83d8..c7af64996c96e34e1d89d4630776df293ad17a47 100644 (file)
@@ -177,6 +177,26 @@ const LineInfo* GetAsmLineInfo (const Collection* LineInfos)
 
 
 
+unsigned LineInfoCount (void)
+/* Return the total number of line infos */
+{
+    /* Walk over all object files */
+    unsigned I;
+    unsigned Count = 0;
+    for (I = 0; I < CollCount (&ObjDataList); ++I) {
+
+        /* Get this object file */
+        const ObjData* O = CollAtUnchecked (&ObjDataList, I);
+
+        /* Count spans */
+        Count += CollCount (&O->LineInfos);
+    }
+
+    return Count;
+}
+
+
+
 void AssignLineInfoIds (void)
 /* Assign the ids to the line infos */
 {
index 9e32803eedec11696c12700376ca8d0ddd8c8f5b..db4f84f4a615f1f9a0fd4ce7aaf51aa61a2d4f06 100644 (file)
@@ -171,6 +171,9 @@ INLINE unsigned GetSourceLineFromList (const Collection* LineInfos)
         GetSourceLine ((const LineInfo*) CollConstAt ((LineInfos), 0))
 #endif
 
+unsigned LineInfoCount (void);
+/* Return the total number of line infos */
+
 void AssignLineInfoIds (void);
 /* Assign the ids to the line infos */